2017-02-17 6 views
2

次の2つの配列を比較するにはどうすればよいですか? 私が使用:配列の違いが表示されない

array_diff($array1, $array2) 

それはちょうど私がarray_diff_keysを使用している場合のみ、その関数ので、私は配列1に値として1234でそれをごまかすことができます$の配列1のすべての配列だけでなく、39077

Array1 ([0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503) 

Array2 ([0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 39077) 

を示しいくつのキーがどの値でないかをチェックします。

Array1 ([0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 1234) 

Array2 ([0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 39077) 

出力これはPHPマニュアル http://php.net/manual/en/function.array-diff.php 正しい

array() 
+0

が更新されました......... – Michael

+0

これはまだ分かりませんが、 '39077'が必要な場合は、args' array_diff($ array2、$ array1) ' – AbraCadaver

+0

をスワップする必要がありますが、array2のすべての値を表示してから、 – Michael

答えて

1

ことdate_diff

は、1つ以上の他のアレイに対してARRAY1比較とに 値を返すことを言います。 array1は他の配列のいずれにも存在しません。キー配列は、あなたが必要とするのだろう

を動作しないためのよう

とは...キー(連想)配列のための単純な配列に特異的ではありません

array_diff_key($array1, $array2) 

ことarray_diff_key - 比較のキーを使用して配列の差を計算する

または値のために使用することができますが

array_diff_assoc($array1, $array2); 
+0

ありがとうscaisEdge、素晴らしい機能:) – Michael

+0

@マイケル私の答えが正しければそれを受け入れるようにマークしてください...どうぞこちらをご覧ください http://meta.stackexchange.com/questions/5234/how-does-accepting-an -answer-work – scaisEdge

+0

私は知っている、もっと5分待たなければならない:) – Michael

0

array_diff_assocそれだけで$の配列1のすべての配列を示していないだけで39077

だけ交換引数

array_diff($array2, $array1); 

注:この答えは、$ array1に存在しない$ array2の値を返します。$ array1の$ array2にない の値を返しません。

$ php -r '$a1=array(1,2,3,7,8); $a2=array(1,2,7,10,15); print_r(array_diff($a2,$a1));' 
Array 
(
    [3] => 10 
    [4] => 15 
) 

入力

$ cat test.php 
<?php 

$array1 = array(40016 , 39995 , 39990, 38921 , 39890 , 39812 , 39672 , 39767 , 38709 , 18631 , 9503); 
$array2 = array(40016 , 39995 , 39990, 38921 , 39890 , 39812 , 39672 , 39767 , 38709 , 18631 , 9503, 39077); 

print_r(array_diff($array2,$array1)); 

?> 

出力

$ php test.php 
Array 
(
    [11] => 39077 
) 
+0

これはまだ動作しませんが、2つの間で唯一の違いはありません。 – Michael

+0

期待される出力 –

+0

のみ39077 ........ – Michael

関連する問題