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]   

> Описание: Работа с элементами массива
Nizz
Отправлено: 01 Февраля, 2019 - 16:01:28
Post Id



Гость


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


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




Добрый день ув. форумчане. Не получается обработать значения массива, подскажите пожалуйста функцию для задачи.

Есть массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. [1] -> 13,14,
  3. [3] -> 13,76,
  4. [87] -> 43,
  5. )
  6.  


Значения массива - строка с id пользователей через ",".
Необходимо выполнить поиск по строке массива и вернуть ключи, где есть искомый id.
То есть, если у пользователя id "13", вернуть должно 1 и 3 ключ.
Применял in_array(), но тк. это строка - не получается вернуть нужные ключи.
Спасибо.
 
 Top
Строитель Модератор
Отправлено: 01 Февраля, 2019 - 16:28:16
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Nizz
PHP:
скопировать код в буфер обмена
  1. $arr = [
  2.     1 => '13,14',
  3.     3 => '13,76',
  4.     87 => 43
  5. ];
  6.  
  7. $id = 13;
  8. $keys = [];
  9.  
  10. foreach ($arr as $k => $v) {
  11.     ! in_array($id, explode(',', $v)) ?: $keys[] = $k;
  12. }
  13.  
  14. print_r($keys);
  15. /*
  16.     Array
  17.     (
  18.         [0] => 1
  19.         [1] => 3
  20.     )
  21. */
 
 Top
Nizz
Отправлено: 01 Февраля, 2019 - 16:47:50
Post Id



Гость


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


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




Строитель огромное вам спасибо !
 
 Top
LIME
Отправлено: 01 Февраля, 2019 - 17:17:51
Post Id


Активный участник


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


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





Строитель обычные if уже скучно?))
как понт нормально, но в продакшен такое фу писать
 
 Top
Nizz
Отправлено: 02 Февраля, 2019 - 10:39:17
Post Id



Гость


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


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




LIME , а как переписать условие под традиционный оператор if ?
 
 Top
Строитель Модератор
Отправлено: 02 Февраля, 2019 - 11:34:07
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Nizz пишет:
а как переписать условие под традиционный оператор if ?
PHP:
скопировать код в буфер обмена
  1. $arr = [
  2.     1 => '13,14',
  3.     3 => '13,76',
  4.     87 => 43
  5. ];
  6.  
  7. $id = 13;
  8. $keys = [];
  9.  
  10. foreach ($arr as $k => $v) {
  11.     if (in_array($id, explode(',', $v))) {
  12.         $keys[] = $k;
  13.     }
  14. }
  15.  
  16. print_r($keys);
 
 Top
LIME
Отправлено: 02 Февраля, 2019 - 12:11:04
Post Id


Активный участник


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


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





Строитель учи индексы бд...это наше все...с высоты опыта самоучки очень сильно рекомендую
освоишь btree++ остальное дело техники
и асинхронность почитай...очереди для начала...
мозги у тебя очень на месте
 
 Top
Nizz
Отправлено: 02 Февраля, 2019 - 13:45:07
Post Id



Гость


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


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




Строитель еще раз большое вам спасибо. С оператором if - гораздо понятнее.
 
 Top
LIME
Отправлено: 02 Февраля, 2019 - 16:47:54
Post Id


Активный участник


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


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




Nizz пишет:
Строитель еще раз большое вам спасибо. С оператором if - гораздо понятнее.
ыгм...спасибо вам большое))...
(Добавление)
Nizz нельзя структуру хранить в строке...от слова вообще
структурированные данные храни как один к многим или юзай json ...тоесть как nosql
 
 Top
Строитель Модератор
Отправлено: 02 Февраля, 2019 - 18:36:21
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




LIME пишет:

Строитель учи индексы бд...это наше все...с высоты опыта самоучки очень сильно рекомендую
освоишь btree++ остальное дело техники
и асинхронность почитай...очереди для начала...
мозги у тебя очень на месте
Спасибо Улыбка
(Добавление)
Nizz пишет:
Строитель еще раз большое вам спасибо. С оператором if - гораздо понятнее.

Да так-то не за что Закатив глазки
 
 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