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。谢谢