本文实例分析了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程序设计有所帮助。