我用它来对多维数组进行排序
usort($items, function($a, $b) {
return $a['item'] - $b['item'];
});
在分类之前
Array
(
[0] => Array
(
[uuid] => 3199d45c-a5c2-474c-8768-06e18fdf6ace
[status] => active
[item] => Spar
)
[1] => Array
(
[uuid] => 4001
[status] => active
[item] => Starbucks
)
[2] => Array
(
[uuid] => 4002
[status] => active
[item] => Burger King
)
[3] => Array
(
[uuid] => 4003
[status] => active
[item] => Steers
)
[4] => Array
(
[uuid] => 4004
[status] => active
[item] => Hungry Lion
)
[5] => Array
(
[uuid] => 658bee38-04c2-4f27-812f-dd46c3652dcb
[status] => active
[item] => Deslies
)
[6] => Array
(
[uuid] => a5c2b1dc-584d-4175-9d21-e7a910606835
[status] => active
[item] => Nandos
)
[7] => Array
(
[uuid] => e1a14e51-0cfc-47c6-8ae8-d408fd43571e
[status] => active
[item] => OK
)
)
排序后
Array
(
[0] => Array
(
[uuid] => 658bee38-04c2-4f27-812f-dd46c3652dcb
[status] => active
[item] => Deslies
)
[1] => Array
(
[uuid] => a5c2b1dc-584d-4175-9d21-e7a910606835
[status] => active
[item] => Nandos
)
[2] => Array
(
[uuid] => e1a14e51-0cfc-47c6-8ae8-d408fd43571e
[status] => active
[item] => OK
)
[3] => Array
(
[uuid] => 4004
[status] => active
[item] => Hungry Lion
)
[4] => Array
(
[uuid] => 4003
[status] => active
[item] => Steers
)
[5] => Array
(
[uuid] => 4001
[status] => active
[item] => Starbucks
)
[6] => Array
(
[uuid] => 4002
[status] => active
[item] => Burger King
)
[7] => Array
(
[uuid] => 3199d45c-a5c2-474c-8768-06e18fdf6ace
[status] => active
[item] => Spar
)
)
为什么排序后Burger King
不会先排在第一位?
答案 0 :(得分:2)
比较它们,然后根据'项目'返回结果。你有..
例如:
function compare($a, $b)
{
return strcmp($a["item"], $b["item"]);
}
usort($items, "compare");
while (list($key, $value) = each($items)) {
echo "\$items[$key]: " . $value["item"] . "\n";
}
这里有一些例子:READ THE MANUAL
答案 1 :(得分:1)
您正在使用的回调函数用于比较整数,而不是字符串
要比较字符串而不是整数,请使用strcmp()而不是直接减去两个字符串。
usort($items, function($a, $b) {
return strcmp($a['item'], $b['item']);
});