2013-06-28 254 views
-1

我有一个由对象组成的数组。根据对象属性对对象数组排序

[ 
    { 
     "name" => "First", 
     "order" => 5 
    }, 
    { 
     "name" => "Second", 
     "order" => 3 
    }, 
    { 
     "name" => "Third", 
     "order" => 9 
] 

如何通过升序“order”值来订购?

我应该得到:

[ 
    { 
     "name" => "Second", 
     "order" => 3 
    }, 
    { 
     "name" => "First", 
     "order" => 5 
    }, 
    { 
     "name" => "Third", 
     "order" => 9 
]; 
+0

[按值排序多维数组(2)](http://stackoverflow.com/questions/2699086/sort-multidimensional-array-by-value-2) – deceze

+1

请参阅[参考:所有基本方法在PHP中对数组进行排序](http://stackoverflow.com/q/17364127/476) – deceze

回答

2

您应该能够使用PHP usort()功能像这样的数组:

usort($array, function($a, $b){return $a["order"]-$b["order"];}); 

或对象:

usort($array, function($a, $b){return $a->order-$b->order;}); 

这里的PHP参考:usort()

+0

“不能使用类型为stdClass的对象作为数组” – Lukmo

+0

@Ping - 我添加了一个额外的例子:相同的想法,只是稍微不同的语法对象。 – 2013-06-28 10:12:35

+0

谢谢,它的工作原理!这帮助我了解了如何排序的工作。 – Lukmo

相关问题