亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數組排序給出錯誤錯誤:無法使用組織\系統策略對象類型的對象作為數組”

數組排序給出錯誤錯誤:無法使用組織\系統策略對象類型的對象作為數組”

PHP
慕尼黑5688855 2023-07-08 15:36:06
當我打印我的數組時,它給我的是print_r($out)給出以下Array([0] => Organization\System Policies Object    (        [id:protected] => 780        [name:protected] => Apply For all    )[1] => Organization\System Policies Object    (        [id:protected] => 779        [name:protected] => Apply Critical       )[2] => Organization\System Policies Object    (        [id:protected] => 781        [name:protected] => Test Machines    )[3] => Organization\System Policies Object    (        [id:protected] => 782        [name:protected] => Dev Systems      ))我嘗試使用以下代碼對其進行排序$sorted = array();    foreach ($out as $key => $row)    {        $sorted[$key] = $row['name'];    }    array_multisort($sorted, SORT_ASC, $out);我嘗試使用“名稱”對數組進行排序,但收到錯誤“錯誤:無法使用組織\系統策略對象類型的對象作為數組”,有沒有辦法對此進行排序。
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

小心你的數組中的數據對象,你無法訪問 $row['name'] 應該是 $row->name ....


 

 uasort($out,fn ($prev,$next)=>$prev->name<=>$next->name);


  print_r($out);

適用于7.4以下版本



 $sortedArray=uasort($array,function($prev,$next){

     

     return $prev->name<=>$next->name;

});


print_r($sortedArray);

使用 foreach 迭代數據



foreach($out as $item)

{

    echo $item->name ; //will work

    echo  $item['name']//will not working

}

通過 ArrayObject 和 oop


$arrayObject = new ArrayObject($out);

$arrayObject->uasort(function ($a,$b){

    return $a->name<=>$b->name;

});

print_r($arrayObject->getArrayCopy());


查看完整回答
反對 回復 2023-07-08
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

您的數組是對象數組,而不是關聯數組的數組。您可以將語法更改為:$sorted[$key] = $row->name;或者如果您希望將其作為關聯數組,則可以鍵入強制轉換它:

$row = (array)$row;
$sorted[$key] = $row['name'];


查看完整回答
反對 回復 2023-07-08
  • 2 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號