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
Отправлено: 26 Июля, 2018 - 13:40:35
Post Id



Гость


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


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




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

Суть крайне проста: мне хочется получить простой массив, который я смогу использовать за пределами цикла while. (пробовал и другие циклы, но они дают такой-же результат)

PHP:
скопировать код в буфер обмена
  1.  
  2. $query = $db->prepare('SELECT id FROM products WHERE id > ? AND namecate LIKE ?');
  3.     $query->execute(array($ids, $par));
  4.          
  5.      $test = array();
  6.          
  7.     while ($results = $query->fetch(PDO::FETCH_ASSOC))
  8.     {  
  9.  
  10.         $array = array_flip($results);
  11.         unset ($array[$Param]);
  12.         $array = array_flip($array); /// тут я вырезаю повторяющийся элемент массива
  13.        
  14.         $test = $array['id'];
  15.        
  16.        
  17.     }
  18.  
  19.  print_r($test); // но возвращает последний элемент массива, вместо всех, которые извлекло.
  20.  
  21.  


Помогите пожалуйста с решением. Спасибо.
(Добавление)
Извините за спам. Осознал свою ошибку спустя два дня ковыряния. Все обошлось проще не прибегая к циклу.
 
 Top
Строитель Модератор
Отправлено: 26 Июля, 2018 - 16:14:49
Post Id



Участник


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


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




Nizz, на будущее - допишите к переменной $test квадратные скобки []
Спойлер (Отобразить)
 
 Top
Nizz
Отправлено: 26 Июля, 2018 - 16:26:15
Post Id



Гость


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


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




Строитель у меня все-равно ничего не получалось, пока вы не указали мне на ошибку. Не думал, что из-за отсутствия кв. скобок может быть такая ошибка. Спасибо вам за помощь!
 
 Top
Строитель Модератор
Отправлено: 26 Июля, 2018 - 16:32:54
Post Id



Участник


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


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




Nizz пишет:
Не думал, что из-за отсутствия кв. скобок может быть такая ошибка
Ну а как же? Если переменная хранит структуру массива, то для обращения к любому его элементу надо указывать его ключ. Ключ в свою очередь записывается в квадратных скобках. Если в квадратных скобках явно не указать ключ - запись элементов в массив начнётся с начала массива (индекс 0). Если не писать квадратные скобки, то переменная целиком перезаписывается тем значением, которое в текущий момент будет в переменной $results['id'], и судя по её названию, там будет уж точно не массив, а айдишник.
 
 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