2016-10-09 2 views
0

Meine PHP diese Zeichenfolge von einem Android-AppLesen Sie dieses Array in PHP

[{"id":2,"category":"Food%2C%20Drinks%20%26%20Clothes","description":"Nasi%20Lemak%2C%20Teh%20Tarik%20","cost":"5","transactionDate":"2016-10-04"},{"id":3,"category":"Food%2C%20Drinks%20%26%20Clothes","description":"Rori%20Canai","cost":"3"}] 

Dann nach tun $data = json_decode($data,TRUE);

auf den String oben, erhielt sie geworden:

Array 
(
    [0] => Array 
     (
      [id] => 2 
      [category] => Food%2C%20Drinks%20%26%20Clothes 
      [description] => Nasi%20Lemak%2C%20Teh%20Tarik%20 
      [cost] => 5 
     ) 

    [1] => Array 
     (
      [id] => 3 
      [category] => Food%2C%20Drinks%20%26%20Clothes 
      [description] => Roti%20Canai 
      [cost] => 3 
     ) 

) 

Aber ich don Ich kann es nicht lesen. Hier ist, was ich getan habe:

//I pass the data above into variable $data 

$data = json_decode($data,TRUE); 

for ($i = 0; $i < count($data); $i++){  
echo "id: ".$data[$i]["id"]. ", desc: ".$data[$i]["description"]. ", cost: ".$data[$i]["cost"]; 
} 

aber es gibt nur AA A ...

* die Daten über alle bereits in <pre></pre>

+0

Was ist der tatsächliche Wert von '$ data' bevor Sie entschlüsseln? Was bekommst du wenn du 'var_dump ($ data)' nach dem Decodieren hast? Außerdem würde ich vorschlagen, einen anderen Variablennamen zuzuweisen. –

+0

hast du irgendwo 'urlencode()' benutzt? Wenn ja, dann benutze stattdessen 'rawurlencode()'. –

+2

Das funktioniert gut https://3v4l.org/2Znq2 –

Antwort

1

Speichern json variabel angezeigt wird, zum Beispiel $json und Lauf json_decode($json, true) und speichern Sie es in Variable, zum Beispiel $array. Jetzt haben Sie JSON in Array dekodiert. Danach können Sie mit der Schleife foreach durch das Array iterieren. Um einige %2C%... Zeichen loszuwerden, führen Sie urldecode für jedes Element des Subarrays aus. Dies ist ein Beispiel:

<?php 

$json = '[{"id":2,"category":"Food%2C%20Drinks%20%26%20Clothes","description":"Nasi%20Lemak%2C%20Teh%20Tarik%20","cost":"5","transactionDate":"2016-10-04"},{"id":3,"category":"Food%2C%20Drinks%20%26%20Clothes","description":"Rori%20Canai","cost":"3"}] 
'; 

$array = json_decode($json, true); 

foreach($array as $subArray) 
{ 
    echo urldecode($subArray['id']).'<br/>'; 
    echo urldecode($subArray['category']).'<br/>'; 
    echo urldecode($subArray['description']).'<br/>'; 
    echo urldecode($subArray['cost']).'<br/><br/>'; 
} 

und das Ergebnis ist:

2 
Food, Drinks & Clothes 
Nasi Lemak, Teh Tarik 
5 

3 
Food, Drinks & Clothes 
Rori Canai 
3 
0
array_walk_recursive(json_decode($json, true), function(&$item, $key){ 
    $item = urldecode($item); 
}); 

foreach ($array as $item) { 
    .. 
}