2013-06-26 24 views
11

:inşa json dizi dinamik böyle basit json nesneleri oluşturabilir

$d = array('item' => "$name" ,'rate' => "$rating"); 

Ama öğeleri bir dizi oluşturmak istiyorum ve bir db sorgudan onu inşa ediyorum çünkü dinamik yaparsam ne olacak?

Güncelleme:

bana yapmam gerektiğini biliyorum daha spesifik olalım: Bir öğe ve ücret alanına sahip bir json nesnesi yaratacak

$jsonCode = json_encode($d); 

. Ama ben onu kodladığında json dizisinde birden fazla json nesnesi istiyorum.

böyle bir şey ne akıllıca json istiyorum geçerli:

[{"item":"toy","rating":"baz" },{"item":"bike","rating":"2.3" }, {"item":"juice","rating":"1.3" }] 
+10

JSON değil. Bu bir PHP dizisidir. – Paulpro

+10

Bu JSON değil, sadece bir PHP dizisidir. – Barmar

+10

Bu JSON değil, sadece bir PHP dizisidir. :) –

cevap

24

değil Ama bunu kodlamak zaman bir json dizide birden json nesneleri istediğiniz unutmayın.

Sonra diziler bir dizi oluşturmak ve json_encode geçmek. documentation about arrays, köşeli parantez sözdizimi ile oluşturma/değiştirme bölümünde bir diziye öğelerin nasıl ekleneceğini açıklar.

İlişkili diziler, sahip olduğunuz gibi, nesneler olarak kodlanacak, "normal" diziler (ardışık sayısal tuşlara sahip diziler) diziler olarak kodlanacak.

Örnek:

$d = array(); 

// This appends a new element to $d, in this case the value is another array 
$d[] = array('item' => "$name" ,'rate' => "$rating"); 

$json = json_encode($d); 
+0

php aslında zorunlu ve idiosyncratic yerine, idiomatic ve kolay olduğu nadir bir vaha. – ahnbizcad

0

Neden sadece onu yapmış ama sonra json_encode içinden dizisi geçirmek gibi dizinizi oluşturmak? Eğer çok boyutlu bir dizi istiyorsanız

,

$array[] = array("key1" => value1, "key2" => value2); 
+0

Çizgiler arasında okuma, asıl sorunu çok boyutlu dizilerin nasıl oluşturulacağını bilmiyor. – Barmar

+0

Lütfen güncellediğinde okuyun, o bunu nasıl yapılacağını bilmiyordu ya da yorum yazdığımda tam olarak ne istediğini yazmamıştı –

+0

Başta bile, nasıl yaratılacağını bilmediği belliydi. dizi dinamik olarak. Bir dizi öğe inşa etmek ve bunu dinamik olarak yapmak istiyorsam nasıl yazdı? – Barmar

1

Ne yapabilirsiniz sonra istediğiniz kadar altında bir json diziye dönüştürecek dinamik olarak bir php dizi oluşturmak olduğunu deneyin.

$json_array = json_encode($array); 

ne sağladık bir json dizi

+0

Sadece özgün sorularımı yeterince özgün olmadığım gibi güncelledim – Mike

8

Bu veritabanı sorgudan çok boyutlu bir dizi oluşturmak ve sonra JSON olarak kodlar.

$d = array(); 
while ($row = $stmt->fetch_assoc()) { 
    $d[] = $row; 
} 
$json = json_encode($d); 

Her $row

veritabanı tarafından döndürülen bir veri ilişkisel dizi olacaktır. $d[]'a atama, onu bu kapsayıcı dizininin dizinlenmiş bir öğesi olarak ekler.

+0

Teşekkürler! Bu mükemmel çalışıyor. – Harsha

İlgili konular