2016-03-29 25 views
-1

Bu JSON dizesini bir PHP dizisine dönüştürmeye çalışıyorum. JSON dizesi veritabanımda saklanır ve zaten aldım.JSON dizesini veritabanından PHP dizi sorunlarına dönüştürme

{ 
    "users": "user1, user2" 
} 

Yukarıdaki JSON dizesini, aşağıdaki gibi bir diziye dönüştürmem gerekiyor, ancak dinamik olarak.

$myArray = array("user1", "user2") 

Bu benim kodudur:

$row = mysqli_fetch_array($result); 
    $json = $row['json']; 
    $decode = json_decode($json); 
    $list = $decode->users; 
    $myArray = explode(',', $list); 

Bu kod benim programda çalışmak değil, ben dizi yazdırmak print_r ben dinamik olmayan dizesinden $ myArray yazdırmak eğer aynı baktığında. Bu bir sorundur, çünkü dinamik olmayan dizge çalışır.

+1

bu dinamik dizelerden birini göster – RomanPerekhrest

+0

Neden virgülle ayrılmış bir liste olarak saklıyorsunuz? JSON dizileri gösterebilir, bu yüzden neden JSON olarak kodlamadan önce bir dizi yapamazsınız? – Barmar

cevap

1

Kullanıcı adları arasındaki ayırıcı virgül + boşluktur, siz patladığınızda yalnızca virgül kullanıyorsunuz, böylece ikinci ve sonraki kullanıcı adları başlangıçta bir yer kaplıyor. Deneyin: Sana gerçek bir dizi depolamak böylece yerine bir virgülle ayrılmış bir liste daha JSON yapısını değiştirmek önerilir

.

{ 
    "users": ["user1", "user2"] 
} 

kullanıcıların gerçek tabloda böylece yerine JSON sarılı olmak yerine, veritabanı yapısını değiştirmek olacaktır Daha da iyisi. Bu, kullanıcıları kolayca ve verimli bir şekilde arayan sorguları yapmanızı sağlar.

+0

Kullanıcıların gerçek bir tabloda var ama bu JSON bir kullanıcının arkadaşlarını göstermek. Teşekkür ederim, virgül sonra alanı ekledikten sonra sabit .. – zam

+0

@DanielZam Bir 'arkadaşlar' tablonuz olmalı, 'Joe' bir arkadaşı olarak tüm kullanıcılara söyle 'gibi şeyler yapabilirsiniz. – Barmar

+0

Teşekkür ederim, bunu yapmayı düşüneceğim. PHP ve MySQL'i hala öğreniyorum ve şu ana kadar sahip olduğum işlevsellik şu an için ihtiyacım olan şey. – zam