我使用的是Laravel但不应该在这个问题上发挥作用:
我收到错误:
未定义的索引:AutoID
在此:
dump($row); // outputting assoc array on screen
$id = $row['AutoID']; // getting error here
这就是数组输出的样子:
array:8 [▼
"AutoID" => "6"
"Numurs" => "XXXX"
"Auto" => "Opel Astra"
"IzlaidumaGads" => "2007"
"BakasTilpums" => "52.00"
"KontaktiID" => "41"
"Piezimes" => "NULL"
"Slegts" => "1"
]
如您所见 - 数组以索引" AutoID"开头。 有没有人知道为什么会发生这种情况?
代码是从foreach循环中删除的,但是2行实际上是彼此跟随的,并且$ row在代码中的任何地方都没有被修改。
此外,如果我尝试使用例如$ row [' Auto'] - 没有错误
完整代码:
private function storeCars($arrAuto) {
$idAssoc = [];
foreach ($arrAuto as $row) {
$car = new Car;
$car->title = $row['Auto'];
$car->plate_number = $row['Numurs'];
$car->year = (int)$row['IzlaidumaGads'];
$car->odometer = 0;
$car->tank_size = (float)$row['BakasTilpums'];
$car->user_id = (int)$row['KontaktiID'];
$car->deleted_at = $row['Slegts'] === '1' ? \Carbon\Carbon::now()->toDateTimeString() : null;
$car->fuel_usage = 0;
$car->save();
dump($row);
$id = $row['AutoID'];
$idAssoc[$id] = $car->id;
}
return $idAssoc;
}
转储完整数组$ arrAuto:https://pastebin.com/embed_js/taLjWgVy
我手动隐藏" Numurs"因为那个实际车的车牌数
Sollution:
正如你可以通过接受的答案看到的那样:我有一些混乱的角色和索引实际上就像:" [?] AutoID"。
我只是通过收集数组中的值并使用存储在" [?] AutoID"
下的第n个值来解决这个问题。答案 0 :(得分:6)
当我将数组复制到phptester.net时,我在“AutoID”前面得到一些奇怪的字符。有一些隐藏的特征会使事情变得混乱。
编辑:根据要求改进答案