我有这个数组:
$array = array(
array('id' => 'test1',
'url' => 'test1url'
),
array('id' => 'test2',
'url' => 'test2url'
)
);
如何在不知道父密钥但知道相应ID(test1)的情况下访问“test1url”? 如果我知道父键,我可以像这样访问它:
$array[0]['url'];
那么访问这个值的最简单/最快/最快/最简单的方法是什么?
谢谢!
答案 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();在循环父数组时。