您可以使用array_multisort(PHP 4,PHP 5)和array_map(PHP 4> = 4.0.6,PHP 5)
array_multisort(array_map(function($_){return $_->id;},$array["photos"]), SORT_DESC, $array["photos"]);
如果你有PHP 5> = 5.5。 0然後使用array_column,這裏json_encode和json_decode用於轉換stdClass
到array
,所以我個人更喜歡使用array_map的第一個解決方案。
array_multisort(array_column(json_decode(json_encode($array["photos"]), true),"id"), SORT_DESC, $array["photos"]);
測試
[[email protected] tmp]$ cat test.php
<?php
$array = array("photos" => array((object)array("id" => 14,"name" => "image1.jpg"),(object)array("id"=>24,"name"=>"image2.gif")));
print_r($array);
array_multisort(array_map(function($_){return $_->id;},$array["photos"]), SORT_DESC, $array["photos"]);
print_r($array);
?>
輸出
[[email protected] tmp]$ php test.php
Array
(
[photos] => Array
(
[0] => stdClass Object
(
[id] => 14
[name] => image1.jpg
)
[1] => stdClass Object
(
[id] => 24
[name] => image2.gif
)
)
)
Array
(
[photos] => Array
(
[0] => stdClass Object
(
[id] => 24
[name] => image2.gif
)
[1] => stdClass Object
(
[id] => 14
[name] => image1.jpg
)
)
)
如果您有一個id => 30,該怎麼辦? –
到目前爲止您嘗試過的是什麼? –
什麼都不做......返回原始數組 – user889349