如何按布尔值对数组进行排序

Jas*_*rga 3 php arrays sorting

我有一个看起来像这样的数组:

array(
  array('foo' => true),
  array('foo' => false),
  array('foo' => true),
  array('foo' => true),
  array('foo' => false)
)
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将所有阵列foo == true放到顶端?

jte*_*rry 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');
Run Code Online (Sandbox Code Playgroud)