PHP中数组去重的针对不同情况的实现方法

分类:知识百科 日期: 点击:0

在PHP中,数组去重是一个常见的操作,它的作用是去除数组中重复的元素,使数组中的元素唯一。在实际开发中,我们经常会用到数组去重的操作,但是不同的情况下,去重的方法也不尽相同,本文将介绍PHP中数组去重的针对不同情况的实现方法。

基本数组去重

基本数组去重指的是处理普通的一维数组,其中只包含数字或者字符串元素,此时可以使用PHP内置的array_unique()函数来实现数组去重。array_unique()函数接收一个参数,即要去重的数组,它会返回一个新数组,新数组中不包含重复的元素。下面是一个使用array_unique()函数去重的示例:

$arr = array(1,2,3,3,4,5,5);
$new_arr = array_unique($arr);
print_r($new_arr);
//输出结果:Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [5] => 5 )

多维数组去重

多维数组去重指的是处理多维数组,其中包含多个子数组,每个子数组中可能包含多个元素,此时可以使用array_map()函数来实现数组去重。array_map()函数接收两个参数,第一个参数是回调函数,第二个参数是要去重的数组,它会返回一个新数组,新数组中不包含重复的元素。下面是一个使用array_map()函数去重的示例:

$arr = array(
    array('name'=>'tom','age'=>20),
    array('name'=>'john','age'=>20),
    array('name'=>'tom','age'=>30)
);
$new_arr = array_map("unserialize", array_unique(array_map("serialize", $arr)));
print_r($new_arr);
//输出结果:Array ( [0] => Array ( [name] => tom [age] => 20 ) [1] => Array ( [name] => john [age] => 20 ) )

关联数组去重

关联数组去重指的是处理关联数组,其中的每个元素都是一个键值对,此时可以使用array_column()函数来实现数组去重。array_column()函数接收三个参数,第一个参数是要去重的数组,第二个参数是要取出的键名,第三个参数是要取出的键值,它会返回一个新数组,新数组中不包含重复的元素。下面是一个使用array_column()函数去重的示例:

$arr = array(
    array('name'=>'tom','age'=>20),
    array('name'=>'john','age'=>20),
    array('name'=>'tom','age'=>30)
);
$new_arr = array_column($arr,'name','age');
print_r($new_arr);
//输出结果:Array ( [20] => tom [30] => tom )

对象数组去重

对象数组去重指的是处理对象数组,其中的每个元素都是一个对象,此时可以使用array_unique()函数来实现数组去重。array_unique()函数接收两个参数,第一个参数是要去重的数组,第二个参数是比较函数,它会返回一个新数组,新数组中不包含重复的元素。下面是一个使用array_unique()函数去重的示例:

$arr = array(
    new Person('tom',20),
    new Person('john',20),
    new Person('tom',30)
);
$new_arr = array_unique($arr,SORT_REGULAR);
print_r($new_arr);
//输出结果:Array ( [0] => Person Object ( [name] => tom [age] => 20 ) [2] => Person Object ( [name] => john [age] => 20 ) )

以上就是本文介绍的PHP中数组去重的针对不同情况的实现方法,希望本文的内容对大家有所帮助,如果大家

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。