本文实例分析了PHP二维数组去重的方法。分享给大家供大家参考,具体如下:
都知道一维数组去重用系统函数 array_unique($arr)
然后今天我用到二维数组了,也想去重,百度一大堆,都是将二维转一维 然后使用array_unique($arr)
看得我很恼火,所以决定自己写一个。比他的简单好懂,记录下来,以备后用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
header( 'content-type:text/html;charset=utf8' ); $arr = array ( array ( 'id' =>1, 'psid' => 'P101' , 'fullname' => '课程计划全称 101' , 'userid' =>4), array ( 'id' =>1, 'psid' => 'P101' , 'fullname' => '课程计划全称 101' , 'userid' =>3), array ( 'id' =>1, 'psid' => 'P101' , 'fullname' => '课程计划全称 101' , 'userid' =>3), array ( 'id' =>1, 'psid' => 'P101' , 'fullname' => '课程计划全称 101' , 'userid' =>2), array ( 'id' =>2, 'psid' => 'P102' , 'fullname' => '新课程计划' , 'userid' =>4), array ( 'id' =>2, 'psid' => 'P102' , 'fullname' => '新课程计划' , 'userid' =>3), array ( 'id' =>2, 'psid' => 'P102' , 'fullname' => '新课程计划' , 'userid' =>3), array ( 'id' =>2, 'psid' => 'P102' , 'fullname' => '新课程计划' , 'userid' =>2) ); $arr = er_array_unique( $arr ); foreach ( $arr as $v ){ echo 'id: ' . $v [ 'id' ]. 'psid: ' . $v [ 'psid' ]. ' fullname: ' . $v [ 'fullname' ]. ' userid: ' . $v [ 'userid' ]. '<br/>' ; } //二维数组简单去重 function er_array_unique( $arr ){ $newarr = array (); if ( is_array ( $arr )){ foreach ( $arr as $v ){ if (!in_array( $v , $newarr ,true)){ $newarr [] = $v ; } } } else { return false; } return $newarr ; } |
打印结果:
1
2
3
4
5
6
|
id: 1psid: P101 fullname: 课程计划全称 101 userid: 4 id: 1psid: P101 fullname: 课程计划全称 101 userid: 3 id: 1psid: P101 fullname: 课程计划全称 101 userid: 2 id: 2psid: P102 fullname: 新课程计划 userid: 4 id: 2psid: P102 fullname: 新课程计划 userid: 3 id: 2psid: P102 fullname: 新课程计划 userid: 2 |
注意:此方法中的 in_array($need,$arr,$strict)
在 PHP 版本 4.2.0 之前,$need 不允许是一个数组。$stric 为 true 会严格去匹配 $need 和 $arr 中待查找的类型
希望本文所述对大家PHP程序设计有所帮助。