代码之家  ›  专栏  ›  技术社区  ›  James Skidmore

如何根据数组中的特定字段对数组进行排序?

  •  3
  • James Skidmore  · 技术社区  · 14 年前

    如何根据数组中的两个特定值对数组进行排序?例如:

    $arr = array(
                 array('a' => array('field1' => 'Abc', 'field2' => 'Def'), 'b' => 0)
                 array('a' => array('field1' => 'Ghi', 'field2' => 'Jkl'), 'b' => 0)
                );
    

    我想根据 $arr[$i]['a']['field1'] 变量。我该怎么做?

    3 回复  |  直到 14 年前
        1
  •  8
  •   thetaiko    14 年前

    试试看:

    function cmp($a, $b) {
        if ($a['a']['field1'] == $b['a']['field1'] )
            return 0;
        return ( $a['a']['field1'] < $b['a']['field1'] ) ? -1 : 1;
    }
    
    uasort($arr, 'cmp');
    

    这只是对php文档页面上提供的示例的一个小改动: http://www.php.net/manual/en/function.uasort.php

        2
  •  1
  •   SorcyCat    14 年前

    创建自己的比较函数并使用uasort

    http://us.php.net/manual/en/function.uasort.php

        3
  •  1
  •   user187291    14 年前

    在这种特殊情况下(在第一个子数组的第一个项上排序),简单的sort()就足够了。