В массиве только одно значение

InstantCMS 2.X
#1 2 января 2017 в 14:12
Тернистым путем дошел до того чтоб в форму вывести выпадающий список с значениями из БД. В моделе написал метод для получения данных из БД:
  1. public function selectSeria(){
  2.  
  3. $seria = $this->get('seria');
  4. $serii = array();
  5. foreach ($seria as $key){
  6.  
  7. $serii['nazva'] = $key['nazva'];
  8.  
  9. }
  10. return $serii;
  11. }
Не пойму почему, но массив формируеться с одним значением. Попробовал на страничке вывода заполнить массив данными вручную и все ок, а через цикл то только одно значение.У кого какие мысли?
#2 2 января 2017 в 14:19
И опять же после двух дней поиска информации, пришел к выводу сам. Спасибо.
#3 2 января 2017 в 15:28
Intrerio,
Так посмотрели бы, что там в исходном массиве прилетает.
  1. print_r($seria);
#4 3 января 2017 в 13:47

И опять же после двух дней поиска информации, пришел к выводу сам. Спасибо.

Intrerio
Ну и поделились бы опытом.
#5 3 января 2017 в 14:20
Потому что в этой строке:

  1. $serii['nazva'] = $key['nazva'];
вы изменяете элемент nazva в массиве $serii, а не создаете в нем новый элемент.
То есть в цикле вы меняете каждый раз одну и ту же переменную.

Вообще, вашу функцию можно привести к такому виду:

  1. public function selectSeria(){
  2. return $this->get('seria');
  3. }
и результат будет тем же самым
#6 3 января 2017 в 16:13

И опять же после двух дней поиска информации, пришел к выводу сам. Спасибо.

Intrerio
Ну да, документации же нет. А раздел для разработчиков, так вообще пустой. И никто конечно же не занимается постоянным дополнением документации. joke
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.