在不知道父键的情况下,在多维数组中检索子键的值

时间:2010-08-02 09:47:31

标签: php multidimensional-array

鉴于这个多维数组,我正在尝试检索其中一个子键的值:

$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 个答案:

答案 0 :(得分:4)

你必须遍历外部数组:

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

另一种选择是使用contry_id构建一个数组(示例使用PHP> = 5.3功能,但在早期版本中可以轻松解决):

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

编辑如果ID都相同,那就更容易了。做:

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

答案 1 :(得分:1)

使用php 5.3的更通用的解决方案:

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

答案 2 :(得分:0)

你需要使用它:

array_column($movieCast, 'country_id')

结果将是:

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