2012-05-22 86 views
0

我怎樣才能得到這種格式:PHP陣列格式

{ 
"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編碼它不起作用。

回答

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'); 
+0

好,我tryed這一點,它的工作原理,但如何獲得這個結果,我有一個Ajax調用去控制器控制器我需要編碼的代碼是很簡單的,但問題是應該我在foreach循環中執行它?我的意思是如何製作多維數組。每次我添加一個產品數組應該像'$ arr = array('products'=> array( array('id'=> 4,link =>'product.php?id_product = 4'))的新產品時, ('id'=> 5,link =>'product.php?id_product = 5') ) ); ' –

+0

@ user743738看我的編輯。 – Sirko

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

這就是json_encode($array)的輸出,其中$array是嵌套的。

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>';