php怎么使二维数组变一维数组同时去掉相同元素?

Array
(
    [0] => Array
        (
            [0] => 1
        )

    [1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 5
        )

)

使上面的数组变成

Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 5
        )

这样的形式

阅读 3.3k
4 个回答

谢邀~

$tmpData = [
    [1],
    [1,2,3,5],
];

$result = array_reduce($tmpData, function ($result, $value) {
    return array_merge($result, $value);
}, []);

$uniqRes = array_unique($result);
$indexRes = array_values($uniqRes);

var_dump($indexRes);

上面应该就是你想要的答案了。

哈哈,强调下~凡遇到此类问题,千万不要用foreach,第一反应是PHP内置函数

我想的话可以

array_reduce + array_unique + array_merge 处理吧

//还是这个简单点

array_unique(array_merge(...$arr))

//原先说的是这个

$mergeResult = array_unique(array_reduce($arr, function($result, $item) {
    return array_merge($result, $item);
}, []));

笨方法直接foreach in_array吧

array_merge($arr[0],$arr[1]) 原理就是相同的会覆盖掉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题