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
Форумы портала PHP.SU :: Версия для печати :: Массив
Форумы портала PHP.SU » » Вопросы новичков » Массив

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

1. Nizz - 26 Июля, 2018 - 13:40:35 - перейти к сообщению
Доброго времени ув. форумчане. Мне крайне стыдно задавать тут очередной детский вопрос, но к сожалению перебор оф. документации по работе с массивами и циклами - не принесло никакого решения.

Суть крайне проста: мне хочется получить простой массив, который я смогу использовать за пределами цикла 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.  


Помогите пожалуйста с решением. Спасибо.
(Добавление)
Извините за спам. Осознал свою ошибку спустя два дня ковыряния. Все обошлось проще не прибегая к циклу.
2. Строитель - 26 Июля, 2018 - 16:14:49 - перейти к сообщению
Nizz, на будущее - допишите к переменной $test квадратные скобки []
Спойлер (Отобразить)
3. Nizz - 26 Июля, 2018 - 16:26:15 - перейти к сообщению
Строитель у меня все-равно ничего не получалось, пока вы не указали мне на ошибку. Не думал, что из-за отсутствия кв. скобок может быть такая ошибка. Спасибо вам за помощь!
4. Строитель - 26 Июля, 2018 - 16:32:54 - перейти к сообщению
Nizz пишет:
Не думал, что из-за отсутствия кв. скобок может быть такая ошибка
Ну а как же? Если переменная хранит структуру массива, то для обращения к любому его элементу надо указывать его ключ. Ключ в свою очередь записывается в квадратных скобках. Если в квадратных скобках явно не указать ключ - запись элементов в массив начнётся с начала массива (индекс 0). Если не писать квадратные скобки, то переменная целиком перезаписывается тем значением, которое в текущий момент будет в переменной $results['id'], и судя по её названию, там будет уж точно не массив, а айдишник.

 

Powered by ExBB FM 1.0 RC1