如何在PHP中访问数组中的数组值

时间:2012-11-24 08:44:48

标签: php arrays multidimensional-array

我有这个数组:

$array = array(
    array('id' => 'test1', 
          'url' => 'test1url'
    ),

    array('id' => 'test2', 
          'url' => 'test2url'
    )
);

如何在不知道父密钥但知道相应ID(test1)的情况下访问“test1url”? 如果我知道父键,我可以像这样访问它:

$array[0]['url'];

那么访问这个值的最简单/最快/最快/最简单的方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:4)

在这种情况下,没有比循环所有值更好的解决方案。

您可以创建如下函数:

function findUrl($array,$id) {
    foreach($array as $arr) {
        if($arr['id'] == $id) {
            return $arr['url'];
        }
    }
}

并称之为:

echo findUrl($array,"test1");

或创建数据的另一种表示形式,但如果你不能这样做,最好的解决方案就是这个循环。

答案 1 :(得分:0)

$array = array(
    array('id' => 'test1', 'url' => 'test1url'),
    array('id' => 'test2', 'url' => 'test2url')
);

$search = 'test1url';
foreach($array as $k=>$a){
    if(is_array($a) && in_array($search,$a)){
        echo "Key:".$k." has responded that the value of ".array_search($search,$a).' = '.$search;
    }
}

答案 2 :(得分:0)

你有没有理由像这样建立你的阵列?父数组的功能是什么?

您可以使用:array_search();

http://www.php.net/manual/en/function.array-search.php

但是只有先循环父数组才会有效。

<?php
$array = array(
    array('id' => 'test1', 
          'url' => 'test1url'
    ),

    array('id' => 'test2', 
          'url' => 'test2url'
    )
);


foreach ($array as $valuearray) {
    $key = array_search('test1url', $valuearray);
    echo $key;  // = url
}
?>

或者使用in_array();在循环父数组时。