70397


以下のような、質問と回答が3セットで一行を成す、10行分のCSVファイルがあります。

[code]

    質問1||回答1||質問2||回答2||質問3||回答3
    
[/code]

このCSVファイルの回答をPHP(Laravel)で集計するために、以下のような操作を行おうと試みています。

①このCSVファイルを1行ずつインポートし、それぞれの行のn列目の値をforeach文で取得

②取得した、1行目〜10行目までのn列目の値をさらに一つの配列に直す。  
全ての行のn列目の値をまとめた配列から、この配列全体の要素数と、重複している要素の数を取得する。

この操作を行うために、以下のようなコードを書いておりますが、②の一つの配列にまとめなおすコードが分かりません。

$answer1から$answer3までそれぞれ、foreach文をネストにして配列を作るのだとしても、どういったコードを書けばいいのか苦悩しております。

コードが汚く恐縮ですが、ご教授いただけますようお願いいたします。

[code]

    public function store(Request $request){
    
        setlocale(LC_ALL, 'ja_JP.UTF-8');
    
        $uploaded_file = $request->file('file');
    
        $file_path = $request->file('file')->path($uploaded_file);
    
        $file = new \SplFileObject($file_path);
    
        $file->setFlags(\SplFileObject::READ_CSV);
    
        $row_count = 1;
    
        foreach ($file as $row)
        {
            // 1行目のヘッダーは取り込まない
            if ($row_count > 1)
            {
                //各値を取得する
                $id = mb_convert_encoding($row[0],"UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $question1 = mb_convert_encoding($row[1], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $answer1 = mb_convert_encoding($row[2],"UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $question2 = mb_convert_encoding($row[3] "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $answer2 = mb_convert_encoding($row[4], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $question3 = mb_convert_encoding($row[5], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $answer3 = mb_convert_encoding($row[6], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
            }
            $row_count++;
    
        }
    
    }
    
[/code]


CC BY-SA 4.0
2020-09-14T05:49:27.123
70376
2020-09-15T01:10:49.813
2020-09-14T07:47:11.157
3060
41667
question
php laravel csv
foreach文で取得した変数を、さらに一つの配列にまとめたい


新しい配列に入れる時は 以下のコードで（とりあえず全て詰めて見ました） 必要なら配列を複数作成してください。  
$out_arr[] =
array($id,$question1,$answer1,$question2,$answer2,$question3,$answer3);

正しく理解するには [PHP の配列](https://www.php.net/manual/ja/language.types.array.php)

_以下 コード例_

[code]

    $out_arr = array();//初期化
    foreach ($file as $row)
    {
        // 1行目のヘッダーは取り込まない
        if ($row_count > 1)
        {
            //各値を取得する
            $id = mb_convert_encoding($row[0],"UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
            $question1 = mb_convert_encoding($row[1], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
            $answer1 = mb_convert_encoding($row[2],"UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
            $question2 = mb_convert_encoding($row[3],"UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $answer2 = mb_convert_encoding($row[4], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $question3 = mb_convert_encoding($row[5], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
    
                $answer3 = mb_convert_encoding($row[6], "UTF-8", array("ASCII","JIS","UTF-8","EUC-JP","SJIS"));
            $out_arr[] = array($id,$question1,$answer1,$question2,$answer2,$question3,$answer3);//例１
    //      $out_arr[$row_count] = [$id,$question1,$answer1,$question2,$answer2,$question3,$answer3];//例２お好きなように
    //      $out_arr[] = array($id,'$question1'=>$answer1,'$question2'=>$answer2,'$question3'=>$answer3);//例3お好きなように
            }
        $row_count++;
    
    }
    //print_r($out_arr);
    
[/code]


CC BY-SA 4.0
2020-09-15T00:54:45.867
70397
2020-09-15T01:10:49.813
2020-09-15T01:10:49.813
22793
22793
70376
answer