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

Php 在不知道父项的情况下检索多维数组中子项的值,php,multidimensional-array,Php,Multidimensional Array,给定此多维数组,我将尝试检索其中一个子键的值: $movieCast = Array( '1280741692' => Array( ... , 'userid' => 62 , 'country_id' => '00002' ... ) , '1280744592' => Array( ... , 'userid' => 62 ,

给定此多维数组,我将尝试检索其中一个子键的值:

$movieCast = Array(
    '1280741692' => Array(
        ...
        , 'userid' => 62
        , 'country_id' => '00002'
        ...
    )
    , '1280744592' => Array(
        ...
        , 'userid' => 62
        , 'country_id' => '00002'
        ...
    )
)
如何检索国家/地区id的值


顶级数组键可以是任何东西,对于特定用户,country_id的值始终相同。在本例中,用户62的国家/地区id始终为00002。

您必须遍历外部数组:

foreach ($outer as $inner) {
    //do something with $inner["country_id"]
}
另一种选择是使用contry_ids构建一个数组示例使用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"];

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

function pick($array,$column) {
    return array_map(
        function($record) use($column) {
            return $record[$column];
        },
        $array
    );
}
您需要使用以下选项:

array_column($movieCast, 'country_id')
结果将是:

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

我只需要id而不是国家id的列表,因为所有国家id都是相同的?为什么我们使用foreach,我不想循环。我只需要第一个数组country\u id,如果数组太大,foreach需要时间,实际上是会话array@Just它可以工作,但比$inner=reset$outer更简单$id=$inner[country_id];。为什么要创建一个只进行一次迭代的循环。永远感谢你的帮助。。我没必要用foreach。谢谢