вернуться внутрь foreach php и laravel

1

Я пытаюсь вернуть данные каждый раз внутри foreach(), но я продолжаю получать данные на первой итерации цикла, вот мой код

  for ($i = 0 ;$i<4;$i++)
    {
        var_dump($i);
        $publisher = Publisher::find($results[$i]->publisherId);
        //pr($publisher);
        $channels =$publisher->channels()->get() ;
        pr($channels[0]);
        $data = ReviveAgent::getPublisherDailyStatistics($channels[0],$start,$end);
        pr($data);
        return Response::json($data);


    }

на var_dump ($ i); Он показывает только данные только для первого 0. Так как я могу вернуть данные также для 1,2,3

вот мой вывод, когда pr ($ data) для var_dump ($ i) = 1

            array (

   0 => 
  array (
'impressions' => 1867,
'clicks' => 14,
'requests' => 44,
'revenue' => 2.79,
'day' => 
stdClass::__set_state(array(
   'scalar' => '20150518T00:00:00',
   'timestamp' => 1431907200,
   'xmlrpc_type' => 'datetime',
    )),
   ),
 1 => 
 array (
'impressions' => 2197,
'clicks' => 17,
'requests' => 382,
'revenue' => 19.829999999999998,
'day' => 
stdClass::__set_state(array(
   'scalar' => '20150519T00:00:00',
   'timestamp' => 1431993600,
   'xmlrpc_type' => 'datetime',
   )),
  ),
  2 => 
    array (
 'impressions' => 5484,
'clicks' => 3,
'requests' => 3680,
'revenue' => 6.7300000000000004,
'day' => 
stdClass::__set_state(array(
   'scalar' => '20150520T00:00:00',
   'timestamp' => 1432080000,
   'xmlrpc_type' => 'datetime',
 )),
 ),
 3 => 
 array (
'impressions' => 6909,
'clicks' => 105,
'requests' => 5141,
'revenue' => 378.88499999999999,
'day' => 
stdClass::__set_state(array(
   'scalar' => '20150521T00:00:00',
   'timestamp' => 1432166400,
   'xmlrpc_type' => 'datetime',
     )),
    ),
  • 0
    Как насчет хранения всех полученных данных в массиве сначала и после цикла for вы можете вернуть его
  • 0
    позвольте мне показать мой выход на pr ($ data)
Теги:
laravel-4

1 ответ

1

Оператор return неявно завершает текущую область выполнения. Контекст вашего использования не предоставляется, но вы можете поместить свои $data в array до кодирования JSON и вернуть его. Это может выглядеть примерно так:

$data = array();
foreach ($i = 0; $i < 4; $i++) {
    ...
    $record = ReviveAgent::getPublisherDailyStatistics($channels[0], $start, $end));
    pr($record);
    $data[] = $record;
}
return Response::json($data);
  • 0
    я хочу данные как JSON, потому что я хочу использовать данные где-то
  • 0
    @ReginwaldtLed - обновил мой ответ в соответствии с вашей новой информацией о контексте + добавленный пример.
Показать ещё 4 комментария

Ещё вопросы

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