2012-11-24 29 views
-1

我有这样的阵列:如何阵列内访问数组的值在PHP

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

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

如何访问“test1url”不知道母密钥但知道相应ID(TEST1)? 如果我知道父键我可以简单地访问它是这样的:

$array[0]['url']; 

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

谢谢!

+0

用'foreach'迭代整个数组?取决于你想要做什么。 –

+0

@fireeyedboy我编辑了这个问题,指定同一个数组中的ID是标准! – gorge

+0

@FelixKling是的,但我正在寻找一个比所有值循环更轻的解决方案! – gorge

回答

4

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

您可以创建这样一个功能:

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

,并称之为:

echo findUrl($array,"test1"); 

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

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; 
    } 
} 
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();循环父数组时。