美文网首页
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一些常用到的工具方法(有问题欢迎反馈)

    1、二维数组按照指定字段排序 /***排序二维数组*@param$arrUsers 排序数组*@params...

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

    需要排序的数组会按照输入的排序数组顺序重新排序 排序的字段在二维数组中出现多条时,在按照顺序排序的同时,相同的几条...

  • 剑指Offer(一)

    二维数组中的查找 题目 在二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,判断...

  • 2020-04-23

    二维数组的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

  • 剑指offer1-3题总结

    1 二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

  • 004,二维数组中的查找

    二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。...

  • 3月备忘(3)--截至3.18

    1 二维数组中的查找。在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

  • 牛客剑指offer习题解答

    题1 二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

  • 思路集

    二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一...

  • 剑指offer-(1-5)

    1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

网友评论

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

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