2 Stimmen

Abrufen des Wertes eines untergeordneten Schlüssels in einem multidimensionalen Array ohne Kenntnis des übergeordneten Schlüssels

In diesem mehrdimensionalen Array versuche ich, den Wert eines der untergeordneten Schlüssel abzurufen:

$movieCast = Array(
    '1280741692' => Array(
        ...
        , 'userid' => 62
        , 'country_id' => '00002'
        ...
    )
    , '1280744592' => Array(
        ...
        , 'userid' => 62
        , 'country_id' => '00002'
        ...
    )
)

Wie kann ich den Wert von country_id ?

Der Array-Schlüssel der obersten Ebene kann beliebig sein und der Wert von country_id wird für einen bestimmten Benutzer immer gleich sein. In diesem Beispiel ist der Benutzer #62 country_id wird immer 00002 .

4voto

Artefacto Punkte 93200

Sie müssen durch das äußere Array iterieren:

foreach ($outer as $inner) {
    //do something with $inner["country_id"]
}

Eine andere Möglichkeit besteht darin, ein Array mit der contry_id s (das Beispiel verwendet PHP >=5.3 Funktionalität, aber das kann in früheren Versionen leicht umgangen werden):

array_map(function ($inner) { return $inner["country_id"]; }, $outer);

EDIT Wenn die IDs alle gleich sind, ist es noch einfacher. Tun:

$inner = reset($outer); //gives first element (and resets array pointer)
$id = $inner["country_id"];

1voto

bcosca Punkte 17013

Eine universellere Lösung mit php 5.3:

function pick($array,$column) {
    return array_map(
        function($record) use($column) {
            return $record[$column];
        },
        $array
    );
}

0voto

Ehsan Punkte 982

Sie müssen dies verwenden:

array_column($movieCast, 'country_id')

Das Ergebnis wird sein:

array (
    0 => '00002',
    1 => '00002',
)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X