2013-03-21 6 views
0

У меня есть сценарий, который создает массив в следующем форматеполучить значения из многомерного массива

$named_array["vehicles"][0]['vehicle'] = "i100-1 " ; 
    $named_array["vehicles"][1]['vehicle'] = "i100-2 " ; 
    $named_array["vehicles"][2]['vehicle'] = "i100-46 " ; 

То, что я хочу сделать позже в скрипте получить значение индекса [0-1-2 и т.д.] из $ named_array , но у меня есть значение (i100-1 и т. д.) в качестве параметра запроса. Это значит, что я могу изменить его позже. То, что я хочу достичь, это что-то вроде того, что такое значение индекса $named_array, где значение i100-2

Это выводится на json в конце.

Надеюсь, это имеет смысл! любая помощь, пожалуйста?

+1

Я действительно не понимаю, что ваш желаемый результат. Я также не понимаю, почему вам нужно добавить другое измерение для «vehicle» в массиве «vehicle». – Kermit

+0

Принц Мне нужен автомобиль в транспортных средствах, поэтому – Mick

ответ

2
function complex_index_of($named_array, $val){ 
    for($i=0, $n=count($named_array['vehicles']); $i<$n; $i++){ 
     if ($named_array['vehicles'][$i]['vehicle'] == $val) 
      return $i; 
    } 
    return -1; 
} 


echo complex_index_of($named_array, 'i100-2 '); 
// output: 1 
1

Попробуйте что-то вроде этого (возможно создать функцию, если вам нужно сделать, это больше, чем один раз)

$needle = 'i100-1'; 
$vIndex = -1; 
foreach ($named_array["vehicles"] as $index => $data) { 
    if($data['vehicle'] == $needle) { 
     $vIndex = $index; 
     break; 
    } 
} 
Смежные вопросы