美文网首页
PHP二维数组按照指定的顺序排序

PHP二维数组按照指定的顺序排序

作者: zyn_10 | 来源:发表于2019-01-18 16:49 被阅读0次
    /**
     * 对二维数组根据指定的顺序排序
     * @param array $sortArray
     * @param array $data
     * @param string $key
     */
    function arraySortByCustom(array $sort_array, array &$data, string $key)
    {
        usort($data, function ($a, $b) use ($sort_array, $key) {
            $pos_a = array_search($a[$key], $sort_array);
            $pos_b = array_search($b[$key], $sort_array);
            return $pos_a - $pos_b;
        });
    }
    
    $sort_Array = array(3452342, 5867867, 7867867, 1231233);
    $array = array(
        array('id' => 9000, 'title' => 9000),
        array('id' => 7867867, 'title' => 'Some Title'),
        array('id' => 9001, 'title' => 9000),
        array('id' => 3452342, 'title' => 'Some Title'),
        array('id' => 1231233, 'title' => 'Some Title'),
        array('id' => 5867867, 'title' => 'Some Title'),
        array('id' => 1231233, 'title' => 'dierge'),
    );
    
    arraySortByCustom($sort_array, $array, 'id');
    
    var_dump($array);
    

    需要排序的数组会按照输入的排序数组顺序重新排序

    1. 排序的字段在二维数组中出现多条时,在按照顺序排序的同时,相同的几条数据的顺序不变。
    2. 二维数组中存在排序数组中不存在的值,这些数据将会排在开头,顺序为原顺序。

    相关文章

      网友评论

          本文标题:PHP二维数组按照指定的顺序排序

          本文链接:https://www.haomeiwen.com/subject/jygndqtx.html