Как я могу получить значения из массива в PHP? - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть массив 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 ]

3 голосов
/ 07 ноября 2010

A.Я ничего не понимаю из вашего примера кода.

B.Чтобы получить значения массива в PHP, вы можете использовать как числовые значения ключей, так и значения строковых ключей.Допустимо любое из следующего:

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

Также обратите внимание, что $arr[42] будет обращаться к тому же элементу, что и $arr['42'].

C.Вот некоторые рекомендуемые значения: 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 голос
/ 07 ноября 2010

Используйте для этого array_filter . Предполагая, что ваш массив называется $ arr, сделайте следующее:

$indexes = array_filter(function($i) { return $arr[i]['cat'] == 'Gas'; }, array_keys($arr));
0 голосов
/ 07 ноября 2010
$array[2]['cat']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...