我怎么能从PHP中的数组中获取值?

时间:2010-11-07 17:28:50

标签: php arrays search

我有一个像这样的php数组:

array(
[0] =>
array(
... 3 elements ... )

['cat'] =>
'FF'
...
['iPath'] =>
'http://www.xx.com/images'
...
['dispName'] =>
'Fast Food'
...
)
[1] =>
array(
... 3 elements ... )

['cat'] =>
'G&L'
...
['iPath'] =>
'http://www.xx.com/images'
...
['dispName'] =>
'Grocery & Liquor'
...
)
[2] =>
array(
... 3 elements ... )

['cat'] =>
'Gas'
...
['iPath'] =>
'http://www.xx.com/images'
...
['dispName'] =>
'Gas Stations'
...
) 
)

我希望能够获取以下值:iPath和dispName,当cat = XXX时。例如,当cat ='G& L'时。

感谢

ldj

3 个答案:

答案 0 :(得分:3)

一个。我对你的示例代码不了解。

B中。要在PHP中获取数组值,您可以使用数字键值和字符串键值。以下任何一项都有效:

$arr[1][7][0]
$arr['key1'][2]
$arr['42'][42]
$arr['keyLevel1']['keyLevel2']

另请注意,$arr[42]将使用与$arr['42']相同的元素。

℃。以下是一些推荐阅读:http://php.net/manual/en/language.types.array.php


A”。查找数组中所有Gas值的键。

function findGasInArray($arr){
    $results = Array();
    foreach($arr as $key => $val){
        if($val == 'Gas')
            $results[] = Array($key);
        if(is_array($val)){
            foreach(findGasInArray($val) as $otherVal){
                array_unshift($otherVal, $key);
                $results[] = $otherVal;
            }
        }
    }
    return $results;
}
findAllGasInArray($myBigArray);

答案 1 :(得分:1)

使用array_filter。假设您的数组名为$ arr,请执行以下操作:

$indexes = array_filter(function($i) { return $arr[i]['cat'] == 'Gas'; }, array_keys($arr));

答案 2 :(得分:0)

$array[2]['cat']