PHP поиск многомерного массива по значению

1

Например, многомерный array например, пример ниже

$arr = array(

 [H1] => array(
            "name" => "A"
            "title" => "T1"
      )
 [H2] => array(
           "name" => "B"
           "title" => "B1"
      )
)

Скажем, я хотел бы найти name которое равно A в $arr и если оно будет соответствовать, поиск должен вернуть ключ, который является H1

Как я могу это сделать в php?

Я попробовал array_keys($arr, "A") но он возвращает меня с помощью массива вместо ключа.

Теги:
arrays
multidimensional-array

1 ответ

1
Лучший ответ

Это может помочь -

$arr = array(

 'H1' => array(
            "name" => "A",
            "title" => "T1",
      ),
 'H2' => array(
           "name" => "B",
           "title" => "B1",
      )
);

// Generate a new array with 'keys' and values in 'name'
$new = array_combine(array_keys($arr), array_column($arr, 'name'));

// Search in that new array
$search = array_search('A', $new);

var_dump($search);

Вывод

string(2) "H1"

демонстрация

Другой простой способ -

$serach= false;
foreach($arr as $key => $val) {
   if($val['name'] == 'A') {
       $search= $key;
       break;
   }
}
var_dump($search);
  • 0
    Спасибо вам за помощь!
  • 0
    Рад помочь У. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню