📅  最后修改于: 2023-12-03 15:29:28.441000             🧑  作者: Mango
在PHP中,对于多维数组,我们在进行去重操作(使用array_unique函数)时需要注意一些细节问题。本文将为大家介绍如何使用array_unique函数去重一个多维数组。
array_unique函数可以剔除数组中重复的值,并返回新的数组,其用法如下:
array_unique($array)
其中,$array为要去重的数组。
在PHP中,对于多维数组的去重,我们可以使用两种方式:递归方式和使用json_encode和json_decode。
使用递归函数遍历多维数组,将每个子数组都进行一次去重操作。具体实现代码如下:
function multi_array_unique($array){
$res = array();
foreach ($array as $value) {
if(is_array($value)){
$res[] = multi_array_unique($value);
}else{
$res[] = $value;
}
}
return array_unique($res);
}
该函数通过判断每个元素是否为数组,如果是则继续进行递归操作,否则直接将其放入$res中。最后对整个$res进行一次去重操作。
另一种方式是将多维数组转化为json字符串,进行去重操作后再转化为数组。具体代码如下:
function multi_array_unique($array){
$jsonArr = array_map('json_encode', $array);
$uniqueArr = array_unique($jsonArr);
return array_map('json_decode', $uniqueArr);
}
该函数首先将多维数组中的每个元素都进行一次json_encode操作,再将其放入数组jsonArr中。然后对jsonArr进行去重操作,最后通过array_map函数调用json_decode函数将其转化为数组。
以上是对PHP中多维数组去重的方法介绍,其中通过递归方式和使用json_encode和json_decode的方式来实现。需要注意,使用json_encode和json_decode的方式对于数组中含有对象的情况并不适用。
参考文献: