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

usort で試すことができます。これを参照してくださいhttp://php.net/manual/en/function.usort.php

于 2013-09-06T17:07:22.663 に答える
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 に答える