我需要根据二维数组中的特定键选择一个值,我该怎么做?
我只知道代码中数组中第二级的键,而不是它位于1级的数组键中...
示例:
Array
(
[0] => Array
(
[1] => http://stackoverflow.com/
)
[1] => Array
(
[0] => http://www.google.com
)
[2] => Array
(
[20567] => http://www.yahoo.com
)
)
现在我想动态选择密钥20567的值,我不知道它在1级的位置,可能是0,1,2或任何其他密钥。
我希望我解释得那么好:)。
答案 0 :(得分:1)
您可以使用RecursiveArrayIterator和RecursiveIteratorIterator:
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach ($iterator as $key => $value) {
if ($key == 20567) {
var_dump($value);
break;
}
}
函数中的示例:
function valueForKey($array, $key) {
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach ($iterator as $arrayKey => $arrayValue) {
if ($arrayKey == $key) {
return $arrayValue
}
}
return null;
}
答案 1 :(得分:0)
另一个选择是:(应该工作)
function getURLbyRedirects($redirectNumber , $array)
{
foreach($array as $lvl => $elems)
{
if(array_key_exists($redirectNumber , $elems))
return $elems[$redirectNumber];
}
return false;
}
顺便说一下,考虑为这个数组使用不同的结构,如下所示:
数组(
[0] => Array ( [url] => http://stackoverflow.com/ [redirects] => 2067 )