2

我正在组合两个数组,然后编码为 JSON 以供输出。在第二个数组的开头,我在 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正确的方法

问题

  • 你试图只合并一个数组
  • 唯一数组中的第二个元素引用另一个数组,导致另一个索引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 回答