×

php两个数组对比重复

php两个数组对比重复(php判断两个数组是否相等)

admin admin 发表于2023-04-05 02:42:11 浏览69 评论0

抢沙发发表评论

本文目录一览:

php 两个数组比较,如果数组a 和数组b 中的值有一个是相同的,则返回true

$inB = false;

foreach ($a as $v) {

if (in_array($v, $b)) {

$inB = true;

break;

}

}

php数组比对删除重复

这个算法比较好理解并且算法复杂度和内存消耗可控

最终结果数组是下标从0开始重置的,并且2个数组的数字可以乱序排,通用性比较强

?php

$arr1 = array(1,2,3,3,4,5,6,7);

$arr2 = array(1,2,3,3,3,4,4,4,5,6,6,7);

$c1 = count ($arr1);

$c2 = count ( $arr2 );

for($x=0; $x$c1; $x++)

{

    for($y=0; $y$c2; $y++)

    {

        if($arr1[$x] == $arr2[$y])  // 每找到一个相等的,就同时把2个数组对应元素都置临时值

        {

            $arr2[$y] = -999;  

            $arr1[$x] = -9999;

        }

    }

}

while(1)                    // 去掉数组2的临时值并重置下标

{

    $key = array_search(-999, $arr2);      

    if ($key !== false)

        array_splice($arr2, $key, 1); // 不用unset,因为要重置数组下标

    else

        break;

}

print_r($arr2);

php如何删除两个数组中相同的元素

首先,我看到这个问题中描述是“如何删除两个数组中相同的元素”,虽然那个人写了一大堆,竟然用的是array_unique(),从分析到给出的demo一直在解决如何删除“一个”数组中“重复”的元素。汗!答非所问的答案竟然会被采纳。-php两个数组对比重复

这里,简单分析一下提问者的真实意图,分以下2种情况:

1.现在有2个一维数组, $arr1和$arr2,现在要删除 $arr1 中存在于 $arr2 的元素。

解决方案:使用array_diff对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值,代码如下:

?php

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

$arr2 = array(2, 4);

//这一句即可

$arr1 = array_diff($arr1,$arr2);

var_dump($arr1);

2.先声明一下,我看了lt318025大神给出的答案,他的思维非常活跃,已经分了2种情况。

现在有2个一维数组,$a和$b,即删除$a中存在于$b的元素,删除$b中$a存在的元素,组后合并返回。

可是lt318025大神用的PHP版本太高,给出的demo在低版本PHP下运行失败,这里修正一下:

?php

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

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

//得到存在于$a但不存在于$b中的元素组成的数组

$c=array_diff($a,$b);

//这里简单求出在$a但不在$b中的元素

var_dump($c);

//得到存在于$a但不存在于$b中的元素组成的数组与存在于$b但不存在于$a中的元素组成的数组的并集

$d=array_merge(array_diff($a,$b),array_diff($b,$a));

//这里彻底剔除了同时存在于$a和$b中的元素

var_dump($d);

究竟是哪一种情况,这需要看提问者的需求了。

php 对比2个数组之间的相同值

array_walk_recursive

对数组递归执行自定义函数

或者自己写个递归函数。循环$video_list 用is_array 判断 当前循环出来的$value是否是数组。

是数组在调用这个函数。值就是这个$value,

类似test($array,$live_mub)

array_walk_recursive($video_list,function($value,$key)use($live_mub){

      foreach($live_mub as $k=$v){

      

      if($key=='id'){

      

      

      if($value==$v){

      //相同执行操作

      }else{

      //不相同执行操作

      }

      }

      }

});

php判断两个数组是否有相同的元素

$arr1=array(1,2,3,4,5,6,7,8,9,1,2,3,4,5);//设定需要判断的数组

$num1 = count($arr1);//提取该数组的数目

$arr2 = array_unique($arr1);//合并相同的元素

$num2 = count($arr2);//提取合并后数组个数

if($num1$num2)//判断下大小

{

echo "该数组含有重复元素";

}

else

{

echo "该数组不含有重复元素";

}