多维数组排序查询


MultiDim Array Sort query

我用它对多维数组进行排序

    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排序后不先坐?

比较它们,然后根据您拥有的"item"返回结果。。

例如:

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";
}

这里有这样的例子:阅读手动

您使用的回调函数用于比较整数,而不是字符串
要比较字符串而不是整数,请使用strcmp(),而不是直接减去两个字符串。

usort($items, function($a, $b) {
    return strcmp($a['item'], $b['item']);
});