@cybernoob

Как получить ключ массива?

У меня есть значение. Как получить главный ключ массива в котором оно находится (в данном случае 1)
$arr = array(
    '0' => array('one' => 144, 'two' => 125, 'three' => 113),
    '1' => array('one' => 215, 'two' => 211, 'three' => 222)
);

$key = array_search(222, $arr); // false а ожидаю 1
  • Вопрос задан
  • 220 просмотров
Решения вопроса 2
TommyV888
@TommyV888 Куратор тега PHP
-
Воспользуйтесь этой функцией:
function my_search( $data, $arr ){
   foreach($arr as $key => $val){
      if( array_search($data, $val) !== FALSE ){
         return $key;
      }
   }
}
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
$key = array_search(222, $arr);
перебирает элементы и сверяет с needle, то есть у Вас всегда проверяется не равны ли число 222 и массив. А они не равны. Так что Вам дает false.
Вы получили бы 1 если бы массив был таким:
$arr = array(
    '0' => array('one' => 144, 'two' => 125, 'three' => 113),
    '1' => 222
);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
Комментировать
Dase23
@Dase23
back-end developer
разумеется вам выдаcт false

вторым аргументом в функцию вы даете массив у которого только два элемента и 2 ключа (0,1) поиск идет по значением элементов массива
значением элементов массива ЯВЛЯЕТСЯ ДРУГОЙ МАССИВ а не те 222 которые вы ищите) значит вам нужно нырнуть на уровень ниже в массив и производить поиск там

используйте foreach и будет вам счастье)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы