1

私は次のような2つの配列を持っています、

$a =array(1,2,3,4);
$b =array(1,2,5,6);

ここにマイコードがあります

$c=array_diff($a,$b);
$c=array(3,4,5,6);

しかし、私は次のようにしたい

$c=array(3,4);

ノート:

$a配列に存在しない配列値が必要です$b

4

4 に答える 4

8

これを試して

<?php
$array1 = array(1,2,3,4);
$array2 = array(1,2,5,6);
$result = array_diff($array1, $array2);

print_r($result);
?>

array_diff についてこの PHp.NET を読み、このFIDDLE も参照してください

于 2013-08-08T06:29:22.430 に答える
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);
于 2013-08-08T06:38:05.437 に答える
2

古いキーを維持せずに新しい配列を作成したい場合は、これを試してください

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

例はこちら - http://codepad.viper-7.com/bVaJG5

于 2013-08-08T06:43:56.420 に答える
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
于 2013-08-08T06:49:21.043 に答える