3

ここでいくつかのチュートリアルを読みましたが、必要なものを返すものはありません。私は2つの配列を持っています。

$arrayA = array(1960,1961,1963,1962,1954,1953,1957,1956,1955);
$arrayB = array(1949,1960,1961,1963,1962,1954,1953,1957,1956,1955);

ただし、array_diff を実行すると、空の配列が返されます。

$diff = array_diff($arrayA, $arrayB);

しかし、1949 を返したいのですが、私のコードのエラーは何ですか?

編集: 変数の切り替えが機能しないため、3 つの配列 (A、B、および diff) に対して var_dump を実行しました。ここにペーストビンhttp://pastebin.com/tn1dvCs3

4

6 に答える 6

7

array_diffdocumentationに従って、2番目の配列にない最初の配列の要素を見つけることで機能します。あなたの呼び出しを逆にしてみてください:

$diff = array_diff($arrayB, $arrayA);

これを実際に確認するために、より扱いやすいが同等の例を見てみましょう。

$arrayA = array(1960);
$arrayB = array(1949,1960);

$diff = array_diff($arrayB, $arrayA);
var_dump($diff);

これにより、次の結果が得られます。

[mylogin@aserver ~]$ vim test.php
[mylogin@aserver ~]$ php test.php
array(1) {
  [0]=>
  int(1949)
}

これは、取得しようとしている機能の最小限の実例を使用していることに注意してください。実際の実装で不要なデータを破棄することで、発生している問題をより迅速に特定できます。

于 2013-04-18T04:02:27.830 に答える
1

与える、

$diff = array_diff($arrayB, $arrayA);

の結果を持つこと1949、つまり、要素$arrayBが持っているものと$arrayA持っていないもの。

すなわち

$arrayA = array(1960,1961,1963,1962,1954,1953,1957,1956,1955);
$arrayB = array(1949,1960,1961,1963,1962,1954,1953,1957,1956,1955);

$diff = array_diff($arrayB, $arrayA);

print_r($diff );

ここでテスト

于 2013-04-18T04:02:51.340 に答える
0

ここでドキュメントを読むことができますhttp://php.net/manual/pt_BR/function.array-diff.php

$diff = array_diff($arrayB, $arrayA);
print_r($diff);
于 2013-04-18T04:17:21.350 に答える