例如
array(
0=>array('a'=>1, 'b'=2, 'c'=3),
1=>array('a'=>2, 'b'=3, 'c'=1),
2=>array('a'=>3, 'b'=1, 'c'=2)
)例如这样的二维数组,我想以a字段或b字段或c字段正序排序怎么排?我现在用的方法就是冒泡法
array(
0=>array('a'=>1, 'b'=2, 'c'=3),
1=>array('a'=>2, 'b'=3, 'c'=1),
2=>array('a'=>3, 'b'=1, 'c'=2)
)例如这样的二维数组,我想以a字段或b字段或c字段正序排序怎么排?我现在用的方法就是冒泡法
其他的有待研究~
array_multisort -- 对多个数组或多维数组进行排序$ar = array(
0=>array('a'=>1, 'b'=2, 'c'=3),
1=>array('a'=>2, 'b'=3, 'c'=1),
2=>array('a'=>3, 'b'=1, 'c'=2)
);以a字段正序排序
foreach($ar as $v) {
$t = $v['a'];
}$o = array_multisort($t, $ar);以b字段正序排序
foreach($ar as $v) {
$t = $v['b'];
}$o = array_multisort($t, $ar);
$t = $v['a'];
}
这里面 $t不是数字变量,怎么比,另外我把代码写成了数组怎么出不来东西?$ar = array(0 => array('a'=>1, 'b'=>2, 'c'=>3),
1 => array('a'=>2, 'b'=>3, 'c'=>1),
2 => array('a'=>3, 'b'=>1, 'c'=>2)
);
$t = array();
foreach($ar as $v) {
$t = $v['a'];
} $o = array_multisort($t, $ar);
print_r($o);
1 => array('a'=>5, 'b'=>2, 'c'=>1),
2 => array('a'=>1, 'b'=>1, 'c'=>2)
);
$a = array();
$b = array();
foreach($ar as $k=>$v) {
$a[$k] = $v['a'];
$b[$k] = $v['b'];
$c[$k] = $v['c'];
} $o = array_multisort($a, SORT_DESC, $ar);
$o = array_multisort($a, SORT_DESC, $b, SORT_ASC, $ar);
print_r($ar);早发现这个函数就好了,害我一直用冒泡