如何根据数组中的两个特定值对数组进行排序?例如:
$arr = array(
array('a' => array('field1' => 'Abc', 'field2' => 'Def'), 'b' => 0)
array('a' => array('field1' => 'Ghi', 'field2' => 'Jkl'), 'b' => 0)
);
我想根据$arr[$i]['a']['field1']
变量对此数组进行排序。我怎么能这样做?
答案 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
答案 2 :(得分:1)
在这种特殊情况下(排序第一个子阵列的第一项),简单的sort()就足够了。