2012-11-11 78 views
2

我將兩個數組合併成JSON輸出。在第二個數組開始時,我在JSON輸出中獲得了一個時髦的值。這是"0":項目。我無法弄清楚這是從哪裏來的。Array_Merge JSON輸出

合併數組和輸出JSON:

$combine = array_merge(array('array1'=>$bay_events, array('array2'=>$key_events))); 
$finish = json_encode($combine); 

$callback = $_GET['callback']; 
echo $callback.$finish; 

JSON輸出:

{ 
    "array1": [ 
     { 
      "event_id": "3914", 
      "event_name": "Test" 
     } 
    ], 
    "0": { <--- this should not be here 
     "array2": [ 
      { 
       "event_id": "3913", 
       "event_name": "Testssdgs This Is how" 
      } 
     ] 
    } 
} 

我不能找出在"0":是來自。幫幫我?

回答

2

您沒有使用array_merge的正確的方式

問題

  • 你在哪裏試圖合併只有一個陣列
  • 唯一數組中的第二個元素指的是另一個數組至極導致另一指標0

說明

$combine = array_merge(array('array1'=>$bay_events, array('array2'=>$key_events))) 
         ^ ^    ^
         |  |     |  
     Only One array ----+ Fist Index   Second Index Another array 

這是有道使用array_merge

$combine = array_merge(array('array1'=>$bay_events), array('array2'=>$key_events)); 

或者只是刪除它完全

​​
3

這是因爲該行

$combine = array_merge(array('array1'=>$bay_events, array('array2'=>$key_events))); 

嘗試這樣

$combine = array_merge(array('array1'=>$bay_events, 'array2'=>$key_events)); 

只是根據自己的數據來測試的,這裏是

$bay_events = array('event_id' => '3914', 'event_name' => 'Test'); 
$key_events = array('event_id' => '3913', 'event_name' => 'Testssdgs This Is how'); 
$combine = array_merge(array('array1'=>$bay_events, 'array2'=>$key_events)); 
echo json_encode($combine);die; 


{ 
"array1":{"event_id":"3914","event_name":"Test"}, 
"array2":{"event_id":"3913","event_name":"Testssdgs This Is how"} 
} 
+0

你不應該使用array_merge只有一個陣列;沒有必要。請參閱@Baba答案... –

+0

@Glavić根據[documentation](http://php.net/manual/en/function.array-merge.php),array_merge()合併''的''元素'或更多的數組在一起,所以它也是可以接受的 – dav

+0

我沒有寫過,這是無效的代碼或者是行不通的,我只是說它沒有意義......唯一不同的是,當在單個數組上運行array_merge()時,數組將重新組織數字鍵... –