Получить значение дочернего ключа в многомерном массиве, не зная родительского ключа - PullRequest
2 голосов
/ 02 августа 2010

Учитывая этот многомерный массив, я пытаюсь получить значение одного из дочерних ключей:

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

Как мне получить значение country_id?

Ключ массива верхнего уровня может быть любым, и значение country_id всегда будет одинаковым для конкретного пользователя.В этом примере пользователь # 62 country_id всегда будет 00002.

Ответы [ 3 ]

4 голосов
/ 02 августа 2010

Вы должны перебрать внешний массив:

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

Другой вариант - создать массив с contry_id s (в примере используется функциональность PHP> = 5.3, но в более ранних версиях это легко обойти):

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

РЕДАКТИРОВАТЬ Если идентификаторы все одинаковые, еще проще. Do:

$inner = reset($outer); //gives first element (and resets array pointer)
$id = $inner["country_id"];
1 голос
/ 02 августа 2010

более универсальное решение с использованием php 5.3:

function pick($array,$column) {
    return array_map(
        function($record) use($column) {
            return $record[$column];
        },
        $array
    );
}
0 голосов
/ 26 июля 2016

Вам нужно использовать это:

array_column($movieCast, 'country_id')

Результат будет:

array (
    0 => '00002',
    1 => '00002',
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...