如果我有一个包含这样的对象的数组:
Array
(
[0] => stdClass Object
(
[img] => image1.jpg
[order] => 1
)
[1] => stdClass Object
(
[img] => image2.jpg
[order] => 3
)
[2] => stdClass Object
(
[img] => image3.jpg
[order] => 2
)
[3] => stdClass Object
(
[img] => image4.jpg
[order] => 4
)
)
如何按对象“order”值对数组进行排序?在这种情况下,顺序应该是:image1.jpg,image3.jpg,image2.jpg,image4.jpg。
答案 0 :(得分:1)
以下是您的代码的示例:
function sortImage($a, $b)
{
if ($a->img == $b->img) {
return 0;
}
return ($a->img < $b->img) ? -1 : 1;
}
usort($youArray, "sortImage");
编辑:在你的情况下,你有订单属性,但PHP也可以比较“image1”和“image2”字符串
答案 1 :(得分:0)
您应该使用此功能:http://php.net/manual/en/function.usort.php
你必须编写一个比较函数,用作usort
的第二个参数。
答案 2 :(得分:0)
PHP 5.3 +
usort($myArray, function ($a, $b) {
if ($a->order == $b->order) {
return 0;
}
return ($a->order < $b->order) ? -1 : 1;
});
对于&lt; PHP 5.3只是为预定义的命名函数更改匿名函数。