基于两个条件对多维数组进行排序

时间:2018-08-08 20:08:59

标签: php sorting multidimensional-array

请我需要一种有效的方法来用php排序这种数组...

    [
      'product' => ['order' => 2, 'parent' => null],
      'nam-product' => ['order' => 13, 'parent' => 'product'],
      'core' => ['order' => 5, 'parent' => null],
      'cart' => ['order' => 4, 'parent' => 'session'],
      'session' => ['order' => 4, 'parent' => null],
      'naivas-cart' => ['order' => 5, 'parent' => 'cart'],
      'user' => ['order' => 3, 'parent' => null],
    ];

按顺序对数组进行排序,但还要确保父级不在子级之前,我将uasort用于这样的第一个条件

    uasort($plugin, function ($a, $b) use ($direction) {
        if ($a['order'] == $b['order']) {
            return 0;
        }

        if ($direction == 'dsc') {
            return $a['order'] < $b['order'] ? 1 : -1;
        }

        return $a['order'] > $b['order'] ? 1 : -1;
    });

达到第二个条件的有效方法使我难以理解。

0 个答案:

没有答案