我已经创建了2个阵列如下。我的目标是比较这两个数组,并回显一些IF THERE是array2中不在array1中的值。比较2阵列在PHP
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 3, 4, 6);
我已经创建了2个阵列如下。我的目标是比较这两个数组,并回显一些IF THERE是array2中不在array1中的值。比较2阵列在PHP
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 3, 4, 6);
利用array_diff()
。
<?php
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 3, 4, 6);
print_r(array_diff($array2,$array1));
OUTPUT :
Array
(
[4] => 6
)
EDIT :
这实际上是我所期待的相反。我想要的是 扫描array1以检查'6'的值是否存在于 数组中。如果不呼应的东西
<?php
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 3, 4, 6);
foreach($array2 as $val)
{
if(in_array($val,$array1))
{
echo "$val is available in array1<br>";
}
else
{
echo "$val is not available in array1<br>";
}
}
OUTPUT :
1 is available in array1
2 is available in array1
3 is available in array1
4 is available in array1
6 is not available in array1
这实际上与我所寻找的相反。我想要的是扫描array1来检查'6'的值是否存在于它不存在的数组中。如果它不回应某些东西。 – user3135626
@ user3135626,检查编辑的答案 –
使用array_diff。
array_diff($array2, $array1);
这实际上与我所寻找的相反。我想要的是扫描array1来检查'6'的值是否存在于它不存在的数组中。如果它不回应某些东西。 – user3135626
@ user3135626这正是这个应该做的。 – sashkello
<?php
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(1, 2, 3, 4, 6);
$result = array_diff($array1, $array2);
print_r($result);
?>
输出
Array
(
[4] => 6
)
如果你想获得阵列相同的值使用array_intersect
$result = array_intersect($array1, $array2);
正如其他人所指出的那样,你建议立即进行删除d使用array_diff()
; array_diff($a, $b)
返回$b
中不存在的值$a
。
所以:
if (($diff = array_diff($array2, $array1))) {
printf(
"Values in array2 that are not present in array1: %s\n",
join(' ', $diff)
);
}
首款谷歌,如果你不能找到答案,然后在这里问的问题。 –
如何处理不在array2中的array1元素? –
@RonniSkansing这是一个有偏见的观点,我不同意,确定OP问了一些共同点,但为什么要责怪那些回答?另外,请定义'毫不费力的代码'。 –