【问题标题】:Sorting data from a php array对php数组中的数据进行排序
【发布时间】:2013-09-10 20:16:08
【问题描述】:

我已经解码了来自服务器请求的 JSON 结果,现在需要根据数组中的 [name] 字段进行排序。反序列化后的代码是这样的(sn-p)

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,但都没有正确显示。

有没有简单的方法来做到这一点?

【问题讨论】:

标签: php arrays


【解决方案1】:

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

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);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我用这个:

       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');
      

      【讨论】:

        猜你喜欢
        • 2010-10-26
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 2011-11-17
        • 2020-07-03
        • 1970-01-01
        相关资源
        最近更新 更多