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 :: Поиск в массиве array_search

 PHP.SU

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


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

> Без описания
Рачей
Отправлено: 06 Мая, 2016 - 12:29:00
Post Id


Гость


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


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




Задача: Вывести страны с чекбоксами на странице добавления населенного пункта.
В базу к этому населенному пункту пишу -> base64_encode(serialize($iso3letter));
При выводе разбираю -> $sdata = unserialize(base64_decode($city));
Получается массив стран связаных с нас пунктом.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => aus
  4.     [1] => dza
  5.     [2] => bgr
  6. )


Массив стран доступных для связи выглядит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [nameru] => Абхазия
  5.             [iso3letter] => abh
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [nameru] => Австралия
  11.             [iso3letter] => aus
  12.         )
  13.  
  14.     [2] => Array
  15.         (
  16.             [nameru] => Алжир
  17.             [iso3letter] => dza
  18.         )
  19.  
  20.     [3] => Array
  21.         (
  22.             [nameru] => Болгария
  23.             [iso3letter] => bgr
  24.         )
  25.  
  26.     [4] => Array
  27.         (
  28.             [nameru] => Российская Федерация
  29.             [iso3letter] => rus
  30.         )
  31.  
  32. )


Пытаюсь поиском в цикле найти совпадения что бы потом вывести чекбоксы уже отмеченые с выбраными странами.. Но на выходе получаю только 2 чекбокса....
PHP:
скопировать код в буфер обмена
  1.  
  2. print_r($data);
  3. print_r($sdata);
  4.  
  5.  
  6. foreach ($data as $k => $v) {
  7.         if (array_search($v['iso3letter'], $sdata)) {
  8.                 $result[]['iso3letter'] .= $v['iso3letter'].' + ';
  9.         } else {
  10.                 $result[]['iso3letter'] .= $v['iso3letter'].' ';
  11.         }
  12.    
  13. }
  14.  
  15. print_r($result);
  16.  



Вот вывод:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [iso3letter] => abh
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [iso3letter] => aus
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [iso3letter] => dza +
  16.         )
  17.  
  18.     [3] => Array
  19.         (
  20.             [iso3letter] => bgr +
  21.         )
  22.  
  23.     [4] => Array
  24.         (
  25.             [iso3letter] => rus
  26.         )
  27.  
  28. )
  29.  


Подскажите что не правильно. А может быть есть какое другое правильное и простое решение?
 
 Top
Russer
Отправлено: 06 Мая, 2016 - 13:37:00
Post Id


Гость


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


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





замените на
PHP:
скопировать код в буфер обмена
  1. if ((array_search($v['iso3letter'], $sdata)) !== FALSE {

array_search -- Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи.
 
 Top
Рачей
Отправлено: 06 Мая, 2016 - 14:57:51
Post Id


Гость


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


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




PHP:
скопировать код в буфер обмена
  1. if ((array_search($v['iso3letter'], $sdata) !== FALSE) {


Спасибо!Улыбка ТОлько скобочку не там немного, но это уже мелочи.

(Отредактировано автором: 06 Мая, 2016 - 14:58:33)

 
 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