Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как найти ключ массива по значению

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Itan
Отправлено: 08 Октября, 2016 - 23:04:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте! Есть массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 1
  6.             [name_en] => bogdan
  7.             [name_ru] => Богдан
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [id] => 2
  13.             [name_en] => vaz
  14.             [name_ru] => ВАЗ (LADA)
  15.         )
  16.  
  17.     [2] => Array
  18.         (
  19.             [id] => 3
  20.             [name_en] => gaz
  21.             [name_ru] => ГАЗ
  22.         )
  23. }
  24.  


Есть функция, которая возвращает строку, например, vaz

Как мне найти порядковый номер массива, в котором значение name_en == vaz?

Конкретно в этом случае, нужен результат: 1

Если возвращаемая функцией строка будет gaz, то результат нужен: 2

Решил вопрос:
PHP:
скопировать код в буфер обмена
  1. while ($key_name_en = current($marks)) {
  2.         if ($key_name_en['name_en'] == 'vaz') {
  3.                 echo key($marks);
  4.         }
  5.         next($marks);
  6. }
  7. # Результат: 1

(Отредактировано автором: 08 Октября, 2016 - 23:51:43)

 
 Top
andrewkard
Отправлено: 09 Октября, 2016 - 17:40:51
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Простым перебором:
PHP:
скопировать код в буфер обмена
  1.  
  2. $data = [
  3.     [
  4.         'id' => 1,
  5.         'name_en' => 'bogdan',
  6.         'name_ru' => 'Богдан',
  7.     ],
  8.     [
  9.         'id' => 2,
  10.         'name_en' => 'vaz',
  11.         'name_ru' => 'ВАЗ (LADA)',
  12.     ],
  13. ];
  14.  
  15. $str = 'vaz';
  16.  
  17. foreach ($data as $key => $a){
  18.     if($a['name_en'] == $str){
  19.         echo $key;
  20.         break;
  21.     }
  22. }
  23.  
  24.  
 
 Top
Fart
Отправлено: 09 Октября, 2016 - 20:32:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




если будут совпадения по какой нибудь причине в массиве или ключи будут изменяться (или кем то). в противном случае ничего не найдешь. потом еще искать в +100500 строк кода почему нет данных Закатив глазки пробуй далее писать кросс-код при таком поиске:

PHP:
скопировать код в буфер обмена
  1. $data =
  2.  [
  3.     [
  4.         'id' => 1,
  5.         'name_en' => 'vaz',
  6.         'name_ru' => 'ВАЗ (LADA)'
  7.     ],
  8.     [
  9.         'id' => 2,
  10.         'name_en' => 'vaz',
  11.         'name_ru' => 'ВАЗ (LADA)'
  12.     ],
  13.     [
  14.         'id' => 3,
  15.         'name_en' => 'bogdan',
  16.         'name_ru' => 'Богдан'
  17.     ]
  18. ];
  19.  
  20. $str = "vaz";
  21. $i = 0;
  22.  
  23. foreach($data as $a)
  24. {
  25.         $as = array_search($str, $a);
  26.         if($as) echo "[ключ]: ".$as.", [массив]: ".$i."<br>";          
  27.         $i++;
  28. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB