Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中访问数组中的数组值_Php_Arrays_Multidimensional Array - Fatal编程技术网

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

如何在PHP中访问数组中的数组值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这个阵列: $array = array( array('id' => 'test1', 'url' => 'test1url' ), array('id' => 'test2', 'url' => 'test2url' ) ); 如何在不知道父密钥但知道相应ID(test1)的情况下访问“test1url”? 如果我知道父密钥,我可以像这样访问它: $array[0]['url'];

我有这个阵列:

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

    array('id' => 'test2', 
          'url' => 'test2url'
    )
);
如何在不知道父密钥但知道相应ID(test1)的情况下访问“test1url”? 如果我知道父密钥,我可以像这样访问它:

$array[0]['url'];
function findUrl($array,$id) {
    foreach($array as $arr) {
        if($arr['id'] == $id) {
            return $arr['url'];
        }
    }
}
那么,访问该值的最简单/最快/最快/最简单的方法是什么


谢谢

有什么理由这样构建阵列吗?父数组的功能是什么

$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;
    }
}
您可以使用:array_search()

但只有先循环父数组,这才有效

<?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
}
?>


或在_数组()中使用;当循环父数组时。

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

您可以创建如下函数:

$array[0]['url'];
function findUrl($array,$id) {
    foreach($array as $arr) {
        if($arr['id'] == $id) {
            return $arr['url'];
        }
    }
}
并称之为:

echo findUrl($array,"test1");

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

使用
foreach
在数组中迭代?取决于您想做什么。@fireeyedboy我已经编辑了这个问题,以指定同一数组中的ID是标准@FelixKling是的,但我正在寻找一种比遍历所有值更轻的解决方案@这个数组从哪里来?如果你不知道这个值包含哪个数组,那么除了以一种或另一种方式迭代外部数组之外,你别无选择。