Tom: array_diff(), Korrektur

Beitrag lesen

Hello,

ich habe zwei Arrays

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 5
)
Array
(
    [0] => 1
    [1] => 5
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 6
)

Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen. Das wäre also

Array
(
    [0]=>0
    [1]=>3
    [2]=>4
)

Da wäre ja eigentlich array_diff gut, aber der liefert mir nur:

Array
(
    [0] => 0
)

Das ist auch vollkommen so beabsichtigit von der Funktion. Lies Dir bitte die Beschreibung genau durch: http://www.php.net/manual/en/function.array-diff.php

Wenn Du die Reihenfolge der Arrays vertauschst, dann bekommst Du ein anderes Ergebnis.

Und wenn Du die beiden Ergebnisse dann addierst, dann bekommst Du das, was Du ahben willst.

##      $_dein_ergebnis = array_diff($_a, $_b) + array_diff($_b, $_a);

Hier musst Du dann auch noch mergen...
Bei der reinen Addition kann es konflikte mit den Keys geben.

$_dein_ergebnis = array_merge(array_diff($_a, $_b) + array_diff($_b, $_a));

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de