-1

我有这个数组:

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

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

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

$array[0]['url'];

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

谢谢!

4

3 回答 3

4

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

你可以像这样创建一个函数:

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

并称之为:

echo findUrl($array,"test1");

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

于 2012-11-24T09:00:15.947 回答
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;
    }
}
于 2012-11-24T08:47:18.123 回答
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(); 循环父数组时。

于 2012-11-24T08:58:33.513 回答