2013-08-07 3 views
0

У меня трудное время, пытаясь вернуть один массив, который затем я могу вернуть как JSON.Объединение массивов PHP для вывода JSON

Модель:

class CoverageLimit extends Eloquent { 

    protected $table = 'webapp_limit_tbl'; 

    public static function index($code,$plan_type,$income_tier){ 
     $data = CoverageLimit::where('limitcode', $code) 
     ->where('plantypecode', $plan_type) 
     ->where('incometiercode', $income_tier) 
     ->get(array('limitcode','limit_desc')); 
     return print_r($data->toArray()); 
    } 

} 

Контроллер:

$limits = array(); 
    foreach($pieces as $coverage_limit) { 
    $limits = array_merge($limits, coveragelimit::index($coverage_limit,$plan_type,$income_tier)); 
//this now works thanks to suggestion below 
    } 
return $limits; 

Возвращает:

Array 
(
    [0] => Array 
     (
      [limitcode] => L0001 
      [limit_desc] => $1M per claim/$2M annual aggregate 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [limitcode] => L0002 
      [limit_desc] => $2M per claim/ $2M annual aggregate 
     ) 

) 
[true,true] 

Цель состоит в том, чтобы выводить следующие данные в формате JSON через json_encode ($ пределы):

[{"limitcode":"L0001","limit_desc":"$1M per claim/$2M annual aggregate"},{"limitcode":"L0002","limit_desc":"$2M per claim/$2M annual aggregate"}]

Я думаю, что для этого мне нужен единый массив, как показано ниже, но, похоже, я не могу это сделать.

Array 
(
    [0] => Array 
     (
      [limitcode] => L0001 
      [limit_desc] => $1M per claim/$2M annual aggregate 
     ), 
    [1] => Array 
     (
      [limitcode] => L0002 
      [limit_desc] => $2M per claim/ $2M annual aggregate 
     ) 

) 

Я был бы признателен за любую помощь, о том, как я мог бы объединить это возвращение в единый массив для действительного выхода JSon. Или, если есть способ вернуть его из foreach в виде одного массива. Благодарю.

ответ

1

Во-первых, не используйте return print_r($data->toArray());

Это неправильно. Просто сделайте return $data->toArray(), и он должен работать нормально.

Проблема заключается в том, что print_r возвращает логическое значение и выводит на stdout текстовое представление структуры данных. Вот почему вы видите, что это раздражает [true, true] в конце вашего выходного примера. Массив, который вы пытаетесь использовать json_encode, на самом деле представляет собой массив с двумя значениями true, возвращаемыми из print_r.

+0

Спасибо, это был билет! – suncoastkid