循环多维数组

时间:2019-01-26 14:35:59

标签: php arrays laravel laravel-5

我在任务中遇到了这种数组。这是一个多维数组。 在表单中,我有

  

particular [particular] []
  特别[百分比] []
  特别[备注] []

所以我正在做的是,我正在收到请求

  

$ inputs = $ request-> all();

这将返回

 array:3 [▼
    "particular" => array:3 [▶]
    "percentage" => array:3 [▶]
    "remarks" => array:3 [▶]
 ]

内部,每个都有

 array:3 [▼
     "particular" => array:3 [▼
         0 => "11"
         1 => "22"
         2 => "33"
     ] 
     "percentage" => array:3 [▼
         0 => "11"
         1 => "22"
         2 => "33"
     ]
     "remarks" => array:3 [▼
         0 => "na1"
         1 => "na2"
         2 => "na3"
      ]
 ]

我尝试循环播放

foreach ($inputs as $input) {
     dd($input);
}

但是我只得到第一个“特殊” =>数组:3 [▶]

我要的是,我需要将这些值保存在数据库中

 $particular = new Particular;
 $particular->particular = particular;
 $particular->percentage = percentage;
 $particular->remarks = remarks;
 $particular->save();

2 个答案:

答案 0 :(得分:3)

dd的意思是“转储和DIE”,因此您的脚本在第一次迭代中。

您可以:

$particular = new Particular;
$particular->particular = $inputs['particular'];
$particular->percentage = $inputs['percentage'];
$particular->remarks = $inputs['remarks'];
$particular->save();

此外,如果您只需要转储某些内容-有一个dump函数(惊奇!):

foreach ($inputs as $input) {
    dump($input);
}

答案 1 :(得分:-1)

我设法找到了解决方案。我不知道这是否合适,但目前至少对我有用。

    $array1 = $request->particular;
    $array2 = $request->percentage;
    $array3 = $request->remarks;

    $merge = [$array1, $array2, $array3];

    foreach ($merge[0] as $key => $value) {
        $particular = new Particular;
        $particular->particular = $merge[0][$key];
        foreach ($merge[1] as $x => $y) {
            $particular->percentage = $merge[1][$key];

        }
        foreach ($merge[2] as $i => $d) {
            $particular->remarks = $merge[2][$key];

        }
        $particular->report_id = $report->id;
        $particular->save();
    }