【问题标题】:How to format a json file that will be sent back to javascript from php?如何格式化将从 php 发送回 javascript 的 json 文件?
【发布时间】:2015-10-27 17:31:52
【问题描述】:

我想将我的 json 格式化为如下所示:

"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...

问题是我只能弄清楚如何将我编码的数组作为索引数组,从而导致关联数组。

我显然在循环中尝试了如下代码以获得不止一行:

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

但这只会返回最后一组放入数组的项目。我已经让它与一个索引版本一起工作,但我想要整个集合前面的项目标签。

【问题讨论】:

    标签: php json formatting


    【解决方案1】:

    当您执行 $final_return['items'] = array(...) 时,您正在为 $final_return 数组的键 'items' 分配一个新值。

    您想要的是 $final_return['items'][] = array(....) 然后再次将新数组推送到该数组中。

    【讨论】:

    • 我最终使用了一个不同的实现,它使用它作为底层解决方案。感谢您的评论。由于某种原因,我想不出如何以一种不错的方式将数组组合在一起。
    【解决方案2】:

    您需要在数组中添加一个数组来实现这一点。

    试试这个:

    $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);
    

    您可以使用array_push() 将更多数组添加到数组中

    $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);
    

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多