doucang5542
2015-10-27 17:31 阅读 67

如何格式化将从PHP发送回javascript的json文件?

I want to format my json to look something like:

"items": [{
        "item1": "text"
        'item2': "text",
        'item3': "text",
        'item4': number,
        'item5': number,
        'item6': "text",
        'item7': "text"
        },
        "item1": "text"
        'item2': "text",
        'item3': "text",
        'item4': number,
        'item5': number,
        'item6': "text",
        'item7': "text"
}] etc...

The problem is that I can only figure out how to have the array that I encode as an indexed array, which leads into an associative array.

I tried the code as follows in a loop obviously to get more than one row:

$final_return['items'] = array
    (
        'item1' => $item1,
        'item2' => $item2,
        'item3' => $item3,
        'item4' => $item4,
        'item5' => $item5,
        'item6' => $item6,
        'item7' => $item7
    );
echo json_encode($final_return);

But this returns only the last set of items thrown into the array. I have got it working with an indexed version, but I want the items label in front of the whole collection.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    dougao9864 dougao9864 2015-10-27 17:43

    When you are doing $final_return['items'] = array(...) you are assigning a new value on the key 'items' of $final_return array.

    What you want is an $final_return['items'][] = array(....) and then again to push a new array into that array.

    点赞 评论 复制链接分享
  • doulou9927 doulou9927 2015-10-27 17:55

    You need a array inside of array to achieve that.

    Try This:

    $final_return['items'] = array(
        array
        (
            'item1' => '1',
            'item2' => '2',
            'item3' => '3',
            'item4' => '4',
            'item5' => '5',
            'item6' => '6',
            'item7' => '7'
        ),
        array
        (
            'item1' => '1',
            'item2' => '2',
            'item3' => '3',
            'item4' => '4',
            'item5' => '5',
            'item6' => '6',
            'item7' => '7'
        )
    );
    echo json_encode($final_return);
    

    You can use array_push() to more arrays to the array

    $data = array
        (
            'item1' => '1',
            'item2' => '2',
            'item3' => '3',
            'item4' => '4',
            'item5' => '5',
            'item6' => '6',
            'item7' => '7'
        );
    $final_return['items'] = array();
    
    array_push($final_return['items'], $data, $data);
    echo json_encode($final_return);
    
    点赞 评论 复制链接分享

相关推荐