DD在嵌套的foreach循环中不起作用

时间:2019-11-11 09:45:24

标签: php laravel dd

我正在尝试查看变量中的内容。它是一个多重嵌套的foreach。直到foreach中的某个点,它都可以输出dd。然后突然不起作用了,好像Laravel正在阅读它。

我尝试使用var_dump,但也不起作用。如果我输入随机单词,则确实会给它们带来错误,因此代码确实到达了那里。

代码:

foreach ($houses as $house) {
        foreach ($house['forms'] as $form) {
            echo 'Hello World';
            foreach ($projectForms['forms'] as $addedForm) {
                dd($form); //This is the dump I would like to see
                if($addedForm['id'] === $form['id']) {
                    array_push($addedForm['streets'], $house['fullStreet']);
                } else {
                    array_push($projectForms['forms'], array('id' => $form['id'], 'name' => $form['name'], 'percentage' => $form['percentage'], 'streets' => $house['fullStreet']));

                }
            }
        }
    }

dd $ houses:

array:3 [▼
  0 => array:3 [▼
    "id" => 97641
    "fullStreet" => "SomeStreet 1"
    "forms" => array:1 [▼
      0 => array:3 [▼
        "id" => 2456
        "name" => "Some Name"
        "percentage" => 6.6666666666667
      ]
    ]
  ]
  1 => array:3 [▼
    "id" => 97642
    "fullStreet" => "SomeStreet 2"
    "forms" => array:1 [▼
      0 => array:3 [▼
        "id" => 2456
        "name" => "Some Name"
        "percentage" => 6.6666666666667
      ]
    ]
  ]
  2 => array:3 [▼
    "id" => 97643
    "fullStreet" => "SomeStreet 3"
    "forms" => array:1 [▼
      0 => array:3 [▼
        "id" => 2456
        "name" => "Some Name"
        "percentage" => 6.6666666666667
      ]
    ]
  ]
]

dd $ form:

array:3 [▼
    "id" => 2456
    "name" => "Some Name"
    "percentage" => 6.6666666666667
]

dd $ projectForms:

array:2 [▼
  "projectName" => "Some Project Name"
  "forms" => []
]

我想知道为什么dd在$ projectForms的foreach中不起作用。在它上面的回声下,它确实起作用。

1 个答案:

答案 0 :(得分:0)

您应该检查数组中第一个数据是否存在:!empty()

foreach ($houses as $house) {
    if(!empty($house['forms']){
        foreach ($house['forms'] as $form) {
            if(!empty($projectForms['forms']){
                foreach ($projectForms['forms'] as $addedForm) {
                    dd($form); //This is the dump I would like to see
                    if($addedForm['id'] === $form['id']) {
                        array_push($addedForm['streets'], $house['fullStreet']);
                    } else {
                        array_push($projectForms['forms'], array('id' => $form['id'], 'name' => $form['name'], 'percentage' => $form['percentage'], 'streets' => $house['fullStreet']));

                    }
                }
            }
        }
    }
}
相关问题