循环遍历数组

时间:2016-09-29 14:32:05

标签: javascript php arrays

我有一个像这样的数组:

enter image description here

我遇到的问题是如何通过对象进行预测。我想将每个与容器相关联。

所以我尝试了这个:

foreach ($data['plates'] as $index => $element) {
    //Don't worry about the container_id. 
    $plates = Plate::find($element['plate_id'])->plateContainer()->associate($data['container_id'])->save();
}

但似乎无法实现这一目标。我有什么错误或遗失的想法吗?

FYI-模型之间的关系

板块模型

public function plateContainer()
{
    return $this->belongsTo('App\Models\PlateContainer');
}

PlateContainer模型

public function plates()
{
    return $this->hasMany('App\Models\Plate');
}

更新#1:在提交简单表单后,该数组来自AngularJS。对不起忘了提这个。

更新#2:好的。我试了一下。

foreach ($data['plates'] as $element)
{
    foreach ($element as $value)
    {
        $plates = Plate::find($value)->plateContainer()->associate($data['container_id'])->save();
    }
}

......但仍然没有让它发挥作用。检查数据库,它只显示第一个板是用给定容器更新的。

我试过dd($value);它只显示1

2 个答案:

答案 0 :(得分:1)

您的$data['plates']包含2个关联数组:[0] => {etc ...}和[1] => {等等...}。 所以你需要一个嵌套循环。

for ($i=0; $i<count($data['plates']); $i++) {
    foreach ($data['plates'][$i] as $index => $element) {
    //Don't worry about the container_id. 
    $plates = Plate::find($element['plate_id'])->plateContainer()->associate($data['container_id'])->save();
    }
}

答案 1 :(得分:0)

有些东西没了。

$a = "test1";
$b = "test 2";
$c = "test 3";
$d = "test&4";

诀窍