📜  array_unique 多维 php (1)

📅  最后修改于: 2023-12-03 15:29:28.441000             🧑  作者: Mango

PHP中的多维数组去重(array_unique)

在PHP中,对于多维数组,我们在进行去重操作(使用array_unique函数)时需要注意一些细节问题。本文将为大家介绍如何使用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_encode和json_decode

另一种方式是将多维数组转化为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的方式对于数组中含有对象的情况并不适用。

参考文献: