0

我怎样才能得到这种格式:

{
"products": [
    {
        "id":            4,
        "link":          "/product.php?id_product=4",
        "quantity":      1,
        "priceByLine":   "$185.00",
        "name":          "Orci hendrer...",
        "price":         "$185.00",
        "idCombination": 0,
        "hasAttributes": false,
        "hasCustomizedDatas": false,

        "customizedDatas":[
                ]


    },  {
        "id":            5,
        "link":          "/product.php?id_product=5",
        "quantity":      1,
        "priceByLine":   "$215.00",
        "name":          "Semper rutru...",
        "price":         "$215.00",
        "idCombination": 0,
        "hasAttributes": false,
        "hasCustomizedDatas": false,

        "customizedDatas":[
                ]


    }],

}

作为一个PHP数组?我试过了

$array[] = array('id'=>5, link => 'product.php?id_product=5' ... and so on)

但是当我用 JSON 编码时它不起作用。

4

4 回答 4

3

您只需要以正确的方式嵌套数组,如下例所示。

$arr = array( 'products' => array(
  array('id'=>4, link => 'product.php?id_product=4' ),
  array('id'=>5, link => 'product.php?id_product=5' )
  )
);

编辑

在您的代码中,初始化对象看起来像这样:

$arr = array( 'products' => array() );

并且每个后续产品都可以像这样添加(例如,在您解析数据库结果的循环中):

$arr['products'][] = array('id'=>5, link => 'product.php?id_product=5' );
于 2012-05-22T19:44:36.507 回答
0
$data = array(
  'products' => array(
    array('id'=>5, link => 'product.php?id_product=5' ... and so on),
    array('id'=>5, link => 'product.php?id_product=5' ... and so on)
    // repeat once for element.
  )
);
json_encode($data);
于 2012-05-22T19:44:54.137 回答
0

那是 的输出json_encode($array),其中$array嵌套。

于 2012-05-22T20:16:45.083 回答
0

如果您需要以 JSON 格式返回 AJAX 响应 - 您需要添加标头。

<?php 
header("Content-type: application/json");
echo json_encode($array);

否则 - 您可以将数组打印到 JS 全局变量中。

<?php
echo '<script>';
echo 'var foo = ' . json_encode($array); . ';';
echo '</script>';
于 2015-08-08T10:05:59.917 回答