Получить данные из базы массива по значению в этом массиве

У меня такой массив:

$fruits = array( array( 'fruit' => "Banana", 'color' => "Yellow", 'latinName' => "Banana", 'origin' => "Africa" ), ); 

Как я могу получить color если у меня есть значение fruit например?

Я использую эту структуру, так как я хотел бы использовать этот массив, latinName fruit name , color или latinName чтобы получить другую информацию.

Благодарю.

Related of "Получить данные из базы массива по значению в этом массиве"

Взгляните на array_flip в документах PHP . Хотя я бы согласился с тем, что ваша структура данных делает это довольно неудобным, эта функция может облегчить некоторые из проблем.

Кажется довольно тривиальным заявлением foreach, если я не пропустил что-то довольно очевидное:

 <?php $input='Banana'; $fruits = array( array( 'fruit' => "Banana", 'color' => "Yellow", 'latinName' => "Banana", 'origin' => "Africa" ), ); foreach($fruits as $val) { if($val['fruit']==$input) { echo $val['color']; } } ?> 

Edit: В структуре вашего массива нет ничего плохого в этом простом 2d массиве. Во всяком случае, я бы подумал об использовании структуры именования ключей для вашего внешнего массива, что упростило бы использование для вас:

 $fruits = array( "Banana" => array( 'color' => "Yellow", 'latinName' => "Banana", 'origin' => "Africa" ) ); 

Таким образом, вы можете использовать общее имя для доступа к правильному внутреннему массиву – и вы можете использовать все встроенные функции PHP для поиска / доступа к ключам по мере необходимости.

Не уверен, что это лучший способ, но он работает наверняка (может быть, есть и некоторые функции, но idk извините):

 $fruits = array( array( "fruit" => "Banana", "color" => "Yellow", "latinName" => "Banana", "origin" => "Africa" ), array( "fruit" => "Apple", "color" => "Red", "latinName" => "Dunno1", "origin" => "Dunno2" ), array( "fruit" => "Orange", "color" => "Orange", "latinName" => "Dunno3", "origin" => "Dunno4" ), ); for($i=0; $i<count($fruits); $i++){ if($fruits[$i]["fruit"]=="Banana"){ echo $fruits[$i]["color"]; } }