无法使用PHP按键值对数组进行排序

时间:2017-07-18 10:42:50

标签: php arrays

我需要一些帮助。我需要使用PHP按照键值对json数组进行排序。我在下面解释我的代码。

$detailsArr = array(
    array('name' => 'Bob',    'active' => 1),
    array('name' => 'Rachel', 'active' => 0),
    array('name' => 'Arthur', 'active' => 0),
    array('name' => 'Paige',  'active' => 1),
    array('name' => 'Chris',  'active' => 0),
);

在这里,我需要那些active=1会先出现的人。我正在解释下面的代码。

function sortByActive($a, $b){
      $a = $a['active'];
      $b = $b['active'];

      if ($a == $b)
        {
           return 0;
        }

     return ($a < $b) ? -1 : 1;
}
usort($detailsArr, 'sortByActive');

我希望输出如下所示。

$detailsArr = array(
        array('name' => 'Bob',    'active' => 1),
        array('name' => 'Paige',  'active' => 1),
        array('name' => 'Rachel', 'active' => 0),
        array('name' => 'Arthur', 'active' => 0),
        array('name' => 'Chris',  'active' => 0),
    );

但根据我的代码,我无法获得预期的价值。请帮助我。

1 个答案:

答案 0 :(得分:2)

只需更改return行,如下所示: -

return ($a < $b) ?  1 : -1;

输出: - https://eval.in/833885