2013-11-16 4 views
0

Мой массив построен в следующем формате:PHP получить ключ родительского массива

$my_array = array(
    1 => array('Pizza','9.99','New_York'), 
    2 => array('Chicken Wok','12.49','New_Jersey'), 
    ... 
); 

Тогда я принесу базу данных, которая содержит приемы пищи.

Как я могу получить соответствующий ключ $ my_array, зная только еду (например, моя БД содержит «Куриный вок», и мне нужно иметь возможность получить «2» в качестве ключа)?

Обратите внимание: я не могу изменить структуру $ my_array.

ответ

4

Что-то не так с простое выполнение цикла foreach?

foreach($my_array AS $key => $meal) { 
    if($meal[0] == "Chicken Wok") echo "The key is: $key"; 
} 
+0

Я думал, что может быть более эффективный способ сделать это с точки зрения производительности (мой массив содержит около 100 строк, и я выборка около 20 записей в БД) –

+0

PHP может перебрать массивы очень эффективно, Я не думаю, что это должно быть проблемой. Простые решения, как правило, самые лучшие. – jszobody

+0

Вы можете получить фантазию и написать рекурсивную функцию, которая использует array_search(), но в конечном счете вы все еще прокручиваете свой массив до тех пор, пока не найдете совпадение, это ничего не спасет. – jszobody

Смежные вопросы