致命错误:无法在php中将stdClass类型的对象用作数组

致命错误:无法在php中将stdClass类型的对象用作数组,php,Php,我正在将数据从控制器发送到模式 我得到了下面的结果,我试图在网格视图中显示数据 stdClass Object ( [Tmchb] => stdClass Object ( [item] => Array ( [0] => stdClass Object ( [Matnr] => 1006-1

我正在将数据从控制器发送到模式

我得到了下面的结果,我试图在网格视图中显示数据

stdClass Object
(
[Tmchb] => stdClass Object
    (
        [item] => Array
            (
                [0] => stdClass Object
                    (
                        [Matnr] => 1006-1
                        [J3asize] => S
                        [Maktx] => STOCKHOLM-BLANC
                        [Clabs] => 42.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

                [1] => stdClass Object
                    (
                        [Matnr] => 1006-10
                        [J3asize] => XXL
                        [Maktx] => STOCKHOLM-ROUGE
                        [Clabs] => 85.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

                [2] => stdClass Object
                    (
                        [Matnr] => 1006-10
                        [J3asize] => XL
                        [Maktx] => STOCKHOLM-ROUGE
                        [Clabs] => 66.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

                [3] => stdClass Object
                    (
                        [Matnr] => 1006-10
                        [J3asize] => S
                        [Maktx] => STOCKHOLM-ROUGE
                        [Clabs] => 58.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

                [4] => stdClass Object
                    (
                        [Matnr] => 1006-10
                        [J3asize] => M
                        [Maktx] => STOCKHOLM-ROUGE
                        [Clabs] => 167.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

                [5] => stdClass Object
                    (
                        [Matnr] => 1006-10
                        [J3asize] => L
                        [Maktx] => STOCKHOLM-ROUGE
                        [Clabs] => 230.0
                        [Incweek] => 
                        [Zincmgstk] => 0.0
                    )

            )

    )
)

但我犯了这样的错误

Fatal error: Cannot use object of type stdClass as array in `C:\xampp\htdocs\portal\components\com_portal\views\portal\tmpl\default_stock_details_list.php` on line 139
$grid->CellData=$gridData[0]

这是我的PHP代码

function JTPlatinumGrid1RowData($sender, $params) {
$rows = &$params[ 1 ];
$rowdata=$rows;
$alignArray1=array();
    foreach($rowdata as $key=>$val){
        $alignArray1[]=$key;
    }

        for($i=1; $i<=count($alignArray1); $i++){

        if($rows[$alignArray1[$i]]!= ''){
        $rows[$alignArray1[$i]] = '<div style="text-align:right;">' . $rows[$alignArray1[$i]]  . '  </div>';
        }
    }

}    
函数JTPlatinumGrid1RowData($sender,$params){
$rows=&$params[1];
$rowdata=$rows;
$alignArray1=array();
foreach($rowdataas$key=>$val){
$alignArray1[]=$key;
}

对于($i=1;$i此错误意味着您试图访问对象字段,因为它是一个数组。这永远不会起作用

用于访问对象字段

$object->field_name
用于访问数组字段

$array[field_name]
也许您会发现将对象强制转换为数组很有用

$array_var = (array) $object_var;

你做得不对。 假设,$result拥有整个stdClass对象,那么下面的代码段应该正确打印元素

foreach ($result->Tmchb->item as $row) {
  print $row->Matnr . " " . $row->J3asize;
}

你的问题不清楚,但根据你的需要,你可以试试这个

foreach($grid->CellData->$gridData as row){
  echo row['your value'];
}

更具描述性的是,在使用
JTPlatinumGrid1RowData()
时,
$gridData[0]
的值是多少?哪个变量包含该对象数组数据?