array_intersect bei mehrdimensionalen Arrays

loddarmattheus

Erfahrenes Mitglied
Ich habe einmal ein "einfaches" Array und ein mehrdimensionales Array.
PHP:
$array1 = 
Array
(
    [1] => 63
)

$array2 =
Array
(
    [1] => Array
        (
            [zielfeld] => 54
            [figur] => B
        )

    [2] => Array
        (
            [zielfeld] => 63
            [figur] => S
        )

    [3] => Array
        (
            [zielfeld] => 33
            [figur] => S
        )

    [4] => Array
        (
            [zielfeld] => 44
            [figur] => B
        )

    [5] => Array
        (
            [zielfeld] => 44
            [figur] => S
        )

    [6] => Array
        (
            [zielfeld] => 52
            [figur] => L
        )

)
Wenn ich jetzt versuche, die Schnittmenge der beiden Arrays und daraus den letzten Wert mittels
PHP:
$erg = array_pop(array_intersect($array1, $array2['zielfeld']));
herauszufiltern, erhalte ich immer eine Fehlermeldung a la

array_intersect() [function.array-intersect]: Argument #2 is not an array

Eigentlich ist es das Ziel, dass er mir als Ergebnis liefert:
[zielfeld] => 63
[figur] => S

weil sich hier als letztes Zielfeld die 63 aus dem Array1 wiederfindet.

Ich vermute, dass es am falschen Ansprechen des zweiten Arrays liegt, komm aber nicht wirklich weiter.

Danke für jeden Ansatz.

Gruss Loddar
 
Hallo @loddarmattheus

Schau dir mal das $array2 an. ;)
Da gibt es kein Element 'zielfeld' in der ersten Ebene ;)
Erst in der zweiten.

Du müsstest dann das machen:
PHP:
$erg = array_pop(array_intersect($array1, $array2[0]['zielfeld']));

Hoffe ich konnte helfen.

SimonErich
 
Hallo SimonE,

die Idee hatte ich auch schon. Doch wenn ich es so schreibe,bekomme ich immer noch die Fehlermeldung
PHP:
Warning: array_intersect() [function.array-intersect]: Argument #2 is not an array on line 402

Loddar
 
Zurück