PHP数组格式

时间:2012-05-22 19:40:31

标签: php json

我如何获得此格式:

{
"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 个答案:

答案 0 :(得分: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' );

答案 1 :(得分: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);

答案 2 :(得分:0)

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

答案 3 :(得分: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>';