JSON重新编码打印数组索引?

时间:2013-10-09 06:32:50

标签: php json

我正在重新编码web服务中的一些json对象,我在本地测试,所有东西都很好,

encoded result locally

但是当我将它上传到实时服务器上时,它将我的数组更改为包含索引为的所有abject的单个对象,

encoded result live server会产生解析错误,

这是我的代码

foreach ( $events as $eventkey => $event ) {
    if ( $event->recurring_type == "DAILY" ) {
        $date = new DateTime( $event->recurring_start_date );
        $new_event = $event;
        if ( $event->recurring_start_date < $event->recurring_end_date ) {
        while ( $new_event->recurring_start_date < $new_event->recurring_end_date ) {
           $new_event->event_date = $new_event->recurring_start_date;
               $events[] = (array) $new_event;
           $new_event->recurring_start_date = $date->modify('+1 day')->format('Y-m-d H:i:s');
            }
         } else {
        unset( $events[$eventkey] ); // used to avoid duplicate result with same data event_date,
         }
     }

如果我删除此行

unset( $events[$eventkey] );

然后,结果在网上看起来也很好。但我需要这个! 我无法理解确切的问题!
请帮忙

2 个答案:

答案 0 :(得分:1)

使用unset(),您的数组将成为关联数组,因此在JSON中编码为对象。

我的两分钱:而不是unset(),在循环之后使用array_filter()。

http://php.net/manual/fr/function.array-filter.php

答案 1 :(得分:1)

<?php

$arr = array('a' , 'b' , 'c' , 'd' , 'e' );
unset($arr[0]);
echo json_encode($arr);//here o/p as object {"1":"b","2":"c","3":"d","4":"e"}
$arr= array_values($arr);
echo json_encode($arr);//["b","c","d","e"]

code pad