2014-12-01 7 views
8

Ich bin ein JSON-String in die Datenbank von Javascript zu senden, mit der folgenden Syntax:Encode Array JSON-String ohne Array-Indizes

["Product1","Product2","Product3"] 

Bevor ich einfach diese Daten in der Datenbank setzen, ohne es in PHP-Decodierung , und es funktionierte ohne Probleme, wenn es nach dem Retreival wieder verwendet wurde.

aber jetzt muss ich die Daten in der Zeichenfolge ein paar Änderungen vornehmen, so dass ich dekodieren es in PHP, die wie so in einem Array führen wird:

print_r(json_decode($_POST["myjsonstring"])); 
//outputs 
//Array 
//(
// [0] => Product1 
// [2] => Product2 
// [3] => Product3 
//) 

Mein Problem ist, dass, wenn ich kodieren dieses Array JSON zurück, wird die Zeichenfolge des Format folgende sein:

{"0":"Product1","2":"Product2","3":"Product3"} 

ich die codierte Zeichenfolge muß die gleiche wie mein Javascript erstellt, also ohne den Array-Indizes sein. Gibt es einen einfachen Weg, dies zu tun?

+1

Warum die fehlenden Index im Array? Ich denke, du zeigst nicht den ganzen Code, der dieses Array berührt. Wenn Sie keine fortlaufenden Zahlenwerte für den Index haben, behandelt der Prozess json_encode ihn wie ein assoziatives Array und kodiert die Objektnotation anstelle der Arraynotation. –

Antwort

17

Sie wollen array_values() Funktion PHP:

$json_out = json_encode(array_values($your_array_here)); 
+0

$ json_out = json_encode (array_values ​​($ your_array_here)); –

+1

Setzen Sie dieses Beispiel in Ihre Antwort. –

+0

Der fehlende Index ist jedoch möglicherweise wichtig. – Sirko