2

2 つの配列を結合してから、出力用に JSON にエンコードしています。2 番目の配列の開始時に、JSON 出力でファンキーな値を取得します。これが"0":アイテムです。これがどこから来ているのかわかりません。

配列を結合して 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":から来ているのかわかりません。ヘルプ?

4

2 に答える 2

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"}
}
于 2012-11-11T19:10:50.023 に答える
3

array_merge正しい使い方をしていない

問題

  • あなたは1つの配列だけをマージしようとしています
  • 唯一の配列の2 番目の要素が別の配列を参照し、その結果別のインデックスが作成されました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));

または、完全に削除する

$combine = array('array1'=>$bay_events, 'array2'=>$key_events);
于 2012-11-11T19:12:24.203 に答える