我目前正在尝试学习 Laravel 和 PHP。
我需要能够导入 Excel 文件,然后从该文件中获取数据。目前,导入部分可以正常工作,我可以看到文件中的数据。但是,我在访问数据时遇到问题。
我已经阅读了 Laravel 中的 toArray()
函数,并且正在使用它,如下所示:
$data = Excel::load($path, function($reader) {})->skipColumns(2)->get();
$data = $data->toArray();
foreach ($data as $key => $value) {
//We only need some of the available data.
echo $value->next_milestone_desc_cur._comp._incl_rltd;
echo $value->shipment_id;
}
上面的代码给了我以下错误:
Trying to get property 'next_milestone_desc_cur' of non-object
下面是我使用 dd($value) 生成的数组的输出:
array:543 [▼
0 => array:20 [▼
"next_milestone_desc_cur._comp._incl_rltd" => "005. DK - Add DropMode/Local Trp Org in Pickup Tab"
"milestone_cur._comp._sequence_no" => "005"
"cur._comp._export_validation" => "NOT OK"
"shipment_id" => "SBRY0162091"
"consol_id" => "CDK327188" ]
1 => array:20 [▼
"next_milestone_desc_cur._comp._incl_rltd" => "005. DK - Add DropMode/Local Trp Org in Pickup Tab"
"milestone_cur._comp._sequence_no" => "005"
"cur._comp._export_validation" => "NOT OK"
"shipment_id" => "SBRY0162124"
"consol_id" => "CDK327221"
]
我在这里做错了什么?我也尝试过
echo $value[0]->next_milestone_desc_cur._comp._incl_rltd;
,但这也不起作用。
最佳答案
您正在尝试将数组作为对象访问,因此会出现错误并解决第二点,您需要使用嵌套循环来访问子数组。
你的数组看起来像这样:
$array = [
0 => [
0 => [
'test' => 'value'
],
1 => [
'test' => 'something'
]
],
1 => [
0 => [
'test' => 'value'
],
1 => [
'test' => 'something'
]
]
];
您需要以下循环:
foreach ($array as $key => $nested) {
foreach ($nested as $nested_value) {
// You have access to your inner arrays.
echo $nested_value['test'] . ' | ';
}
}
嵌套循环$nested
将是$value
。
实例
关于php - Laravel - 尝试获取非对象的属性 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285097/