Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:未定义索引!但是它';定义_Php_Laravel_Associative Array - Fatal编程技术网

PHP:未定义索引!但是它';定义

PHP:未定义索引!但是它';定义,php,laravel,associative-array,Php,Laravel,Associative Array,我使用的是Laravel,但这不应该在这个问题中起作用: 我得到一个错误: 未定义索引:AutoID 在这方面: dump($row); // outputting assoc array on screen $id = $row['AutoID']; // getting error here 以下是阵列的输出情况: array:8 [▼ "AutoID" => "6" "Numurs" => "XXXX" "Auto" => "Opel Astra" "I

我使用的是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循环中剪切出来的,但实际上有两行紧随其后,并且代码中的任何地方都没有修改$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的转储:

我手动隐藏“Numurs”,因为这是实际车辆的车牌号

解决方案:

正如你们可以从接受的答案中看到的:我有一些混乱的字符,索引实际上就像:“[?]AutoID”


我只需从数组中收集值,并使用存储在“[?]AutoID”下的第n个值即可解决此问题。

当我将数组复制到phptester.net时,“AutoID”前面会出现一些奇怪的字符。有一些隐藏的角色把事情搞砸了


编辑:根据要求改进答案

请以任何方式发布您的代码。你可能认为它不相关,但仍然可能。使用
,我打赌1美元,逻辑是有缺陷的;每次迭代时转储数组。或显示真实代码。。。您可以使用
array.*
函数,该函数接受指针而不是值,并且您可能觉得数组没有做任何更改。同样对于英语中的每个人来说,
$array['Piezimes']
在我看来都很愚蠢。你想分享你的整个foreach循环吗?所以我们可以帮助您。@NoOorZ24您也可以将输出粘贴到pastebin.com上。请将其转储,我们需要您的帮助。任何“未定义索引”都表示其未定义。将下面的代码置于此行上方:$id=$row['AutoID'];并检查遗漏了多少行----------if(!isset($row['AutoID']){echo'skipped row'。continue;}这不是答案。它属于评论。@GreatBigBore,为什么它不是答案?我注意到了这个角色,所以这可能就是问题所在。我还没有测试过,但我认为这是解决办法。这不是答案,因为你自己的话:这可能是问题所在。这不是答案。当我输出键名时,键名中的问题-似乎没问题,但如果我将其粘贴到编辑器中,它看起来像“AutoID”,其中包含无法识别的字符。然而,OP发现有一个坏字符。如果这是问题所在,那么请编辑此内容并更坚定地陈述您的情况。我会建议他接受你的回答,在你做出回答之后。