2017-05-26 4 views
-1

Ich habe ein Skript, das einige angegebene Werte durchläuft und abruft und sie zu einem PHP-Array hinzufügt. Ich habe es dann um den Wert zu diesem Skript zurück:PHP-JSON-Arrays innerhalb eines Arrays

//Returns the php array to loop through 
$test_list= $db->DatabaseRequest($testing); 

//Loops through the $test_list array and retrieves a row for each value 
foreach ($test_list as $id => $test) { 

       $getList = $db->getTest($test['id']); 

       $id_export[] = $getList ; 

      } 

print(json_encode($id_export)); 

Dies liefert einen JSON-Wert von:

[[{"id":1,"amount":2,"type":"0"}], [{"id":2,"amount":25,"type":"0"}]] 

Dies verursacht Probleme, wenn ich versuche, die Daten auf meinen Android-App zu analysieren. Das Ergebnis muss in etwa so aussehen:

[{"id":1,"amount":2,"type":"0"}, {"id":2,"amount":25,"type":"0"}] 

Ich weiß, dass die Schleife das Array in ein anderes Array hinzufügt. Meine Frage ist, wie kann ich ein PHP-Array durchlaufen und alle diese Werte in ein Array setzen und sie im JSON-Format oben ausgeben?

Antwort

1

natürlich denke ich $ getList enthält ein Array von Datenbankspalten,

Verwendung

$id_export[] = $getList[0] 

Vielleicht einige Prüfungen tun können, um zu überprüfen, ob Ihr $ getList Array effektiv 1 Größe

1

$db->getTest() ist scheint ein Array eines einzelnen Objekts, vielleicht mehr, zurückzugeben, das Sie dann zu einem neuen Array hinzufügen. Versuchen Sie eine der folgenden Möglichkeiten:

Wenn es wird immer nur eine Zeile sein, nur um den 0 Index (die einfachste):

  $id_export[] = $db->getTest($test['id'])[0]; 

Oder das aktuelle Array-Element erhalten:

  $getList = $db->getTest($test['id']); 

      $id_export[] = current($getList); //optionally reset() 

Wenn es mehr als eine Zeile gibt, füge sie zusammen (wahrscheinlich eine bessere und sicherere Idee):

  $getList = $db->getTest($test['id']); 

      $id_export = array_merge((array)$id_export, $getList); 
Verwandte Themen