0

我已经从服务器请求中解码了 JSON 结果,现在需要根据数组中的 [name] 字段进行排序。反序列化的代码如下所示(片段)

Array
(
[items] => Array
    (
        [0] => Array
            (
                [houseTypes] => Array
                    (
                        [0] => 2
                        [1] => 3
                        [2] => 4
                    )

                [id] => 1
                [name] => Aberdeen
                [isLive] => 
            )

        [1] => Array
            (
                [houseTypes] => Array
                    (
                        [0] => 2
                        [1] => 3
                        [2] => 4
                    )

                [id] => 2
                [name] => Aberystwyth
                [isLive] => 

不能保证从服务器下来的数据会按字母顺序排列,所以我需要根据名称进行排序。

我试过使用 sort、assort 和 ksort,但没有一个能正确显示。

有没有一种简单的方法可以做到这一点?

4

3 回答 3

0

做起来很简单,
试试这个:

function cmp($a,$b)
{
    if($a['name'] == $b['name'])
        return 0;
    return ($a['name'] < $b['name']) ? -1 : 1;
}
uasort($yourarray['items'],'cmp');
print_r($yourarray);
于 2013-09-06T17:32:44.527 回答
0

我用这个:

 function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
            $b[$k] = strtolower($v[$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
            $c[] = $a[$key];
    }
    return $c;
}
$users = subval_sort($users,'name');
于 2013-09-06T17:13:28.970 回答
0

您可以尝试使用 usort。请参阅此http://php.net/manual/en/function.usort.php

于 2013-09-06T17:07:22.663 回答