我有一个看起来像这样的数组:
array(
array('foo' => true),
array('foo' => false),
array('foo' => true),
array('foo' => true),
array('foo' => false)
)
是否有一种简单的方法可以将foo == true
的所有数组放到顶部?
答案 0 :(得分:6)
只需使用uasort()
功能订购数组:
$arr = array(
array('foo' => true),
array('foo' => false),
array('foo' => true),
array('foo' => true),
array('foo' => false)
);
function sortit($a, $b) {
if($a['foo'] === $b['foo']) {
return 0;
}
return $a['foo'] > $b['foo'] ? -1 : 1;
}
uasort($arr, 'sortit');
答案 1 :(得分:0)
rsort()
实际上会为您做到这一点:
<?php
$a = array(
array('foo' => true),
array('foo' => false),
array('foo' => true),
array('foo' => true),
array('foo' => false)
);
rsort($a);
var_dump($a);
收率:
array (size=5)
0 =>
array (size=1)
'foo' => boolean true
1 =>
array (size=1)
'foo' => boolean true
2 =>
array (size=1)
'foo' => boolean true
3 =>
array (size=1)
'foo' => boolean false
4 =>
array (size=1)
'foo' => boolean false
希望这有帮助!