PHP使用array_unique对二维数组去重处理

array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子。

php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数

一维数组的重复项:

使用array_unique函数即可,使用实例如下:

代码如下 复制代码

<?php

$aa = array("apple", "banana", "pear", "apple", "wail", "watermalon");

$bb = array_unique($aa);

print_r($bb);

?>

  结果如下:

Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon )

  

二维数组去重项

代码如下 复制代码

例如:

$result = array(

0=>array(‘a‘=>1,‘b‘=>‘Hello‘),

1=>array(‘a‘=>1,‘b‘=>‘other‘),

2=>array(‘a‘=>1,‘b‘=>‘other‘),

);

  处理成

$result = array(

0=>array(‘a‘=>1,‘b‘=>‘Hello‘),

1=>array(‘a‘=>1,‘b‘=>‘other‘) 

);

  使用方法

array_unique($result, SORT_REGULAR);

  

二维数组的重复项:

对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明:

㈠因为某一键名的值不能重复,删除重复项

PHP

代码如下 复制代码

<?php

function assoc_unique($arr, $key) {

$tmp_arr = array();

foreach ($arr as $k => $v) {

if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true

unset($arr[$k]);

} else {

$tmp_arr[] = $v[$key];

}

}

sort($arr); //sort函数对数组进行排序

return $arr;

}

$aa = array(

array(‘id‘ => 123, ‘name‘ => ‘张三‘),

array(‘id‘ => 123, ‘name‘ => ‘李四‘),

array(‘id‘ => 124, ‘name‘ => ‘王五‘),

array(‘id‘ => 125, ‘name‘ => ‘赵六‘),

array(‘id‘ => 126, ‘name‘ => ‘赵六‘)

);

$key = ‘id‘;

assoc_unique(&$aa, $key);

print_r($aa);

?>

  显示结果为:

Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )

  

㈡因内部的一维数组不能完全相同,而删除重复项

代码如下 复制代码

<?php

function array_unique_fb($array2D) {

foreach ($array2D as $v) {

$v = join(",", $v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串

$temp[] = $v;

}

$temp = array_unique($temp);//去掉重复的字符串,也就是重复的一维数组

foreach ($temp as $k => $v) {

$temp[$k] = explode(",", $v);//再将拆开的数组重新组装

}

return $temp;

}

$aa = array(

array(‘id‘ => 123, ‘name‘ => ‘张三‘),

array(‘id‘ => 123, ‘name‘ => ‘李四‘),

array(‘id‘ => 124, ‘name‘ => ‘王五‘),

array(‘id‘ => 123, ‘name‘ => ‘李四‘),

array(‘id‘ => 126, ‘name‘ => ‘赵六‘)

);

$bb = array_unique_fb($aa);

print_r($bb)

?>

  显示结果:

Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) )

  

 

原文地址:https://www.cnblogs.com/ymdphp/p/11507517.html

时间: 2024-10-13 10:40:55

PHP使用array_unique对二维数组去重处理的相关文章

二维数组去重

function arrayUnique($array2){ foreach ($array2 as $key => $value) { $v=join(',',$v);//二维变成一维 $tmp[]=$v; } //一维数组去重 $tmp=array_unique($tmp); foreach ($tmp as $key => $value) { $tmp[$key]=explode(',', $value); } return $tmp; } 利用内部函数array_unique,将二维数

PHP 二维数组去重

直接上代码 //二维数组去重$data = array(    0 => array('num' => '110', 'name' => 'nick1'),    1 => array('num' => '111', 'name' => 'nick2'),    2 => array('num' => '110', 'name' => 'nick3'),    3 => array('num' => '112', 'name' =>

js 二维数组去重(续)

之前写过二维数组去重,今天再翻出来看了看,简直不忍直视,如此垃圾,所以今天重新写一下咯. 二维数组去重,重复问题一定要和哈希联系起来,js和java不一样,没有map(es6有),但是js有object,键是不会重复的,不多说,代码如下: var matrix=[ [1,2,3,4], [3,4,5,6], [1,2,3,4] ] var removeRepeat=function(arr){ var obj={}; for(var i=0;i<arr.length;i++){ // 判断当前项

PHP二维数组去重的方法(保留各个键值的同时去除重复的项)-- 二维数组的唯一性

对于如下二维数组,要求对其进行去重: $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>arr

php二维数组去重

方法一:降维去重         if (!$isPidArrKey) {             //降维去重             $temp = array();             foreach ($tmp as $k => $v) {                 $v      = implode(',', $v);                 $temp[] = $v;             }             $temp = array_unique($t

二维数组去重方法

<?php function unique_arr($array2D,$stkeep=false,$ndformat=true) { // 判断是否保留一级数组键 (一级数组键可以为非数字) if($stkeep) $stArr = array_keys($array2D); // 判断是否保留二级数组键 (所有二级数组键必须相同) if($ndformat) $ndArr = array_keys(end($array2D)); //降维,也可以用implode,将一维数组转换为用逗号连接的字

php 去掉二维数组

        /**  * 二维数组去重  * @param 数组 $array  */ function array_unique_fb($array) { foreach ($array as $key=>$v) { $str = ''; foreach ($v as  $key_=>$v_){ $str .= $key_.'@#$'.$v_.',';//键值拼接成以,分割字符串 } $str = substr($str,0,-1);     $temp[] = $str;//生成一维数

二维数组去除重复值和array_unique函数

今天遇到了一个问题,就是从数据库中去除的数组为一个二维数组,现在就是想将二位数组进行去重,但是在php中,对于一个一维数组,我们可以直接使用php的系统函数array_unique,但是这个函数不能对多维数组进行去除重复,因此我需要自己写一个去除二维数组重复值的函数. 1 function array_unique_fb($array2D){ 2 3 foreach ($array2D as $v){ 4 $v=join(',',$v);//降维,也可以用implode,将一维数组转换为用逗号连

php 数组去重 (一维数组与二维数组)

数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: <?php                   $aa=array("apple","banana","pear","apple","wail","watermalon");                   $bb=array_unique($aa);