致命错误:无法在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]
的值是多少?哪个变量包含该对象数组数据?