访问数组中的数据-非对象错误PHP

时间:2018-10-26 16:11:09

标签: php laravel

我正在填充这样的数组:

 $POarray = array();
 foreach($orders as $order)
    {
        $total = OrderItems::where('OrderID', $order->OrderID)->sum('TotalPrice') * (1 + $LRmarkup);
        $arraydata = array(
            'Name' => $order->OrderNumber, 
            'Total' => $total);

        $POarray[] = $arraydata;    

    }

这将导致$ POarray变量的内容为:

[
 {
  "Name": "DS-BS-18102654",
  "Total": 241.4655
 },
 {
  "Name": "test test",
  "Total": "600.00"
 }
]

我正在尝试像这样访问此数据:

 $purchase1name = $POarray[0]->Name;
 $purchase1total = $POarray[0]->Total;

我收到此错误:

 "Trying to get property of non-object"

这不行吗?

感谢您抽出宝贵的时间来答复。

3 个答案:

答案 0 :(得分:0)

$ POarray不是对象。

尝试:

$purchase1name = $POarray[0]['Name'];
$purchase1total = $POarray[0]['Total'];

答案 1 :(得分:0)

使用json_decode()对其进行解码后,您需要这样做,

<?php

$key='[
 {
  "Name": "DS-BS-18102654",
  "Total": 241.4655
 },
 {
  "Name": "test test",
  "Total": "600.00"
 }
]';

$POarray = json_decode($key);

echo $POarray[0]->Name;
echo $POarray[0]->Total;

?>

演示: https://3v4l.org/JvCam

答案 2 :(得分:0)

您也可以使用它。

array_get($POarray[0], 'Name');
array_get($POarray[0], 'Total');

有关更多信息:https://laravel.com/docs/5.7/helpers