我有以下两个数组,
$a =array(1,2,3,4);
$b =array(1,2,5,6);
这是mycode
$c=array_diff($a,$b);
$c=array(3,4,5,6);
但我希望它像下面的
$c=array(3,4);
注意:
我想要$a
数组中不存在的$b
数组值。
答案 0 :(得分:8)
试试这个
<?php
$array1 = array(1,2,3,4);
$array2 = array(1,2,5,6);
$result = array_diff($array1, $array2);
print_r($result);
?>
阅读此PHp.NET以获取array_diff 并且还请参考此FIDDLE
答案 1 :(得分:3)
我知道array_diff
是最好的方式,但戴安娜的答案并不完全是犹太人的,而且评论的沟通可能还不够好。
<?php
$a = array(1,2,3,4);
$b = array(1,2,5,6);
foreach($a as $k => $v)
{
if (in_array($v, $b))
unset($a[$k]);
}
var_dump($a);
答案 2 :(得分:2)
如果要在不维护旧密钥的情况下创建新阵列,请尝试使用
$c = array_values(array_diff($a, $b));
答案 3 :(得分:0)
这应该为你做。
// get differences that in ary_1 but not in ary_2
foreach ( $ary_1 as $v1 ) {
$flag = 0;
foreach ( $ary_2 as $v2 ) {
$flag |= ( $v1 == $v2 );
if ( $flag ) break;
}
if ( !$flag ) array_push( $diff, $v1 );
}
其中:
$ary_1 = $a & $ary_2 = $b