如何移除二维数组中各子数组的重复元素?
解决二维数组子数组去重的问题
嘿,这个需求很容易实现,用PHP的内置函数组合就能搞定,完全符合你想要的结果~
实现代码
// 替换成你的原始数组 $originalArray = [ 'success' => ['Done.', 'Done.'], 'error' => [ 'This request has already been processed.', 'This request has already been processed.', 'This request has already been processed.', "You Don't Have Permission.", "You Don't Have Permission." ], 'warning' => [] ]; // 遍历每个子数组,完成去重+索引重置 $processedArray = array_map(function($subArray) { // array_unique 去除子数组内的重复值,array_values 重置索引为连续的0、1、2... return array_values(array_unique($subArray)); }, $originalArray); // 查看处理后的结果 print_r($processedArray);
代码说明
array_unique():负责移除每个子数组里的重复元素,它会保留第一个出现的元素,后续重复项都会被过滤掉。array_values():因为array_unique会保留原数组的键名(比如去重后可能出现索引跳变),用这个函数可以把索引重置为连续的数字,和你给出的目标格式完全一致。array_map():帮你遍历外层数组的所有子元素,自动把每个子数组传入回调函数处理,不用手动写循环,代码更简洁。
运行这段代码后,输出的结果就是你想要的:
Array ( [success] => Array ( [0] => Done. ) [error] => Array ( [0] => This request has already been processed. [1] => You Don't Have Permission. ) [warning] => Array ( ) )
内容的提问来源于stack exchange,提问作者Tick Twitch
相关产品推荐
相关产品推荐

