[英]Fatal error:Cannot use object of type stdClass as array in php
I am sending data from controller to mode, 我正在将数据从控制器发送到模式,
I got below result, I was trying to display the data in grid view. 我得到了以下结果,我试图在网格视图中显示数据。
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
)
)
)
) )
But I got error like this. 但是我有这样的错误。
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];
This is my PHP code. 这是我的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>';
}
}
}
what i need to do.. 我需要做什么..
This error means you're trying to access an object field as it was an array. 此错误表示您正在尝试访问对象字段,因为它是一个数组。 That will never work.
那永远都行不通。
for accessing object fields 用于访问对象字段
$object->field_name
for accessing array fields 用于访问数组字段
$array[field_name]
Maybe you'll find useful cast your object to array 也许您会发现将对象强制转换为数组很有用
$array_var = (array) $object_var;
You are doing it the wrong way. 您做错了方法。 Say, $result has the entire stdClass object , then the following code segment should print the elements correctly.
假设$ result具有整个stdClass对象 ,则以下代码段应正确打印元素。
foreach ($result->Tmchb->item as $row) {
print $row->Matnr . " " . $row->J3asize;
}
Your question is not clear, but as per your need you can try this 您的问题尚不清楚,但是根据您的需要,您可以尝试一下
foreach($grid->CellData->$gridData as row){
echo row['your value'];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.