PHP - >从基于键的二维数组中选取值

时间:2012-02-25 09:13:24

标签: php arrays

我需要根据二维数组中的特定键选择一个值,我该怎么做?

我只知道代码中数组中第二级的键,而不是它位于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或任何其他密钥。

我希望我解释得那么好:)。

2 个答案:

答案 0 :(得分:1)

您可以使用RecursiveArrayIteratorRecursiveIteratorIterator

$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
    )