Codeigniter - как вернуть номер массива в контроллер

0

Мне нужно передать переменную $ m в результаты обратно на мой контроллер, чтобы отобразить на мой взгляд.

Модель

  for($i=1; $i<=12;)
{
 $month=array("","01","2","3","4","5","6","7","8","9","10","11","12");
$m = $month[$i];            
$i++;
 $query2=$this->db->query("
    SELECT 
      COUNT(*) AS rr 
    FROM
      trans_email 
    WHERE lup LIKE '2014-$m%' 
    ");
$resultarray[$i]=$query2->result();
foreach($resultarray[$i] as $row)
        {
          $data[$i] = $row;

        }


}
      return array('data'=> $data,
        'count'=> $m);

когда я возвращаю $ m в контроллер, результат $ m всегда 12

контроллер

$ind = $this->dash_model->monthreport();
$data= array();
 $data['mont'] = $ind['count'];
$data['mont'] = $ind['data'];
$this->parser->parse('blank.htm', $data);

как возвращает $ m со значением 1,2,3... 12

month 01= 1
month 02= 0
month 03= 5
...
month 12 = 0

Обновление, я просто попробую код

$month=array("1","2","3","4","5","6","7","8","9","10","11","12");
$m =implode(',',$month);// $m = "1,2,3,4,5,6,7,8,9,10,11,12";
return array('data'=> $data,
count'=> $m);

но я получаю

month ,01,2,3,4,5,6,7,8,9,10,11,13 = 1
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 4
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 9
month ,01,2,3,4,5,6,7,8,9,10,11,13 = 0
Теги:
arrays
codeigniter

2 ответа

0
Лучший ответ

если вы хотите, чтобы строка попыталась

$month=array("1","2","3","4","5","6","7","8","9","10","11","12");
$m =implode(',',$month);// $m = "1,2,3,4,5,6,7,8,9,10,11,12";
return array('data'=> $data,
count'=> $m);

или если вы хотите массив

$month=array("1","2","3","4","5","6","7","8","9","10","11","12");
$m =$month;
return array('data'=> $data,
count'=> $m);
  • 0
    спасибо, это работает, но как я соединяюсь с $ data и получаю значение $ m = $ data в поле зрения
  • 0
    пожалуйста, запишите код для печати "месяц, 01,2,3,4,5,6,7,8,9,10,11,13 = 1" это
Показать ещё 1 комментарий
0

Вы совершаете большую ошибку. Вам не нужно зацикливаться. Просто сделайте это:

$month=array("","01","2","3","4","5","6","7","8","9","10","11","12");
$m = $month;

Также, если вы хотите сделать большой массив с циклом, просто выполните следующее:

for($i=0; $i < 1000; $i++)
{
   $m[] = $i; // note that I have used [] after m
}

Также вы можете использовать range(); прочитайте об этом в PHP Docs.

Ваша ошибка в том, что вы создаете массив $ month в каждом цикле заново. Чтобы изменить текущий код, выполните следующие действия:

Поместите массив месяца вне цикла и добавьте [] в m. Это говорит PHP, чтобы добавить новый элемент массива в m.

$month=array("","01","2","3","4","5","6","7","8","9","10","11","12");
 for($i=1; $i<=12;)
{

$m[] = $month[$i];            
$i++;
}
  • 0
    я просто пытаюсь так, но я получил эту ошибку Недопустимый аргумент для foreach ()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню