本文目录一览:
- 1、php 两个数组比较,如果数组a 和数组b 中的值有一个是相同的,则返回true
- 2、php数组比对删除重复
- 3、php如何删除两个数组中相同的元素
- 4、php 对比2个数组之间的相同值
- 5、php判断两个数组是否有相同的元素
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 "该数组不含有重复元素";
}