PHP二维数组如何实现去除重复项

PHP二维数组如何实现去除重复项,第1张

PHP数组去除重复项有个内置函数array_unique(),但是php的array_unique函数只适用于一维数组,对多维数组并不适用,不过你可以在二维数组中的值,用array_unique()即可。

比如:

$array = array(array(1,1,2),array(2,3,4,3));

$temp_array = array();

foreach($array as $key=>$value){

$temp_array[$key] = array_unique($value);

}

$array = $temp_array;

$k='tongxue';

$arr=array(a,b,c,d,tongxue,e,f);

for($i=0;$i<=$arrlength;$i++)

{

if($arr[i] == $k){$k=$k'1' ; echo $k;}

}

//可以再froeach中写一个if判断,将id为2的na值压入$arr数组如:

    foreach($array  $key => $value){

        if($value['id']==2){

            $arr = $value['na'];

        }   

    }

这种方法应该能满足你的需求了吧

之前写了一篇关于数组去重的文章,但是仅限于一维数组。下面的函数可以用于二维数组:

//二维数组去掉重复值

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;}

如果你想保留数组的键值,可以用下面的函数:

//二维数组去掉重复值 并保留键值

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

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

foreach ($temp as $k => $v){$array=explode(",",$v); //再将拆开的数组重新组装

$temp2[$k]["id"] =$array[0];

$temp2[$k]["litpic"] =$array[1];

$temp2[$k]["title"] =$array[2];

$temp2[$k]["address"] =$array[3];

$temp2[$k]["starttime"] =$array[4];

$temp2[$k]["endtime"] =$array[5];

$temp2[$k]["classid"] =$array[6];

大概就这样啦。

<php

$arr=array(6,3,53,5,3);

$arr2=array();

foreach($arr as  $v){

  if(!in_array($v,$arr2)){

      $arr2[]=$v;

  }

}

var_dump($arr2);

>

$arr2即为除掉重复值的结果

可以利用数组key不重复的特性,来解决这个问题

12345678910$array=array();//你的数组$new_array = array();foreach($array as $v){$new_array[$v['title']]=1;}$last = array();foreach($new_array as $u=>$v){$last[] = $u;}echo join(',',$last);

遍历一次就搞定了

既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key

$sourceArr = array();  // 这里就是你原始数据的数组

$newArr = array();  // 这里是相加后处理过的数组,以单号为key

foreach ($sourceArr as $v) {

    if (array_key_exists($v['id'], $newArr)) {

        $newArr[$v['id']]['fund'] += $v['fund'];

    } else {

        $newArr[$v['id']] = $v;

    }

}

大概就是这么个意思,不过交易类型、账务类型你可能还要再处理下。

如果最后想得到一个下标从0开始的,非关联数组,再用array_values()函数处理下就OK了

以上就是关于PHP二维数组如何实现去除重复项全部的内容,包括:PHP二维数组如何实现去除重复项、php判读数组中一个值是否重复、PHP 取出二维数组中有重复值的其他某一项值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9645328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存