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

时间:2010-03-04 20:00:53

标签: php arrays

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

$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 个答案:

答案 0 :(得分:8)

尝试一下:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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