foreach ($data->toArray() as $value) {
dd($value);
if(!empty($value)){
foreach ($value as $v) {
dd($v['id']);
$insert[] = [
'id' => $v['id'],
'name' => $v['name']
];
}
}
}
现在第一个dd()
(laravel输出)产生类似的东西
array:809 [▼
0 => array:20 [▼
"id" => "123"
"name" => "something"
]
...
所以我可以看到有一个名为id的数组元素。调用此数组元素的第二个dd生成输出123
问题在于我用这些数据填充数组。虽然我仍在使用适用于输出的$v['id']
,但在数组中我得到了错误
未定义的索引:id
当索引存在时,为什么会出现这种情况?
由于
答案 0 :(得分:2)
尝试添加一个if来检查数组中是否存在密钥。这将避免密钥不存在且出现Undefined index: id
错误的情况。
foreach ($data->toArray() as $value) {
if(!empty($value)){
foreach ($value as $v) {
if (array_key_exists("id",$v) &&
array_key_exists("name",$v)) {
$insert[] = [
'id' => $v['id'],
'name' => $v['name']
];
}
}
}
}