使用php的两个数组之间的差异

时间:2013-08-08 06:27:42

标签: php arrays array-difference

我有以下两个数组,

$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数组值。

4 个答案:

答案 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));

此处示例 - http://codepad.viper-7.com/bVaJG5

答案 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