2014-12-01 18 views
8

wyślę ciąg JSON do bazy danych z JavaScript, z następującą składnią:Koduje tablicy do JSON ciąg bez indeksów tablicy

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

Przed I po prostu umieścić te dane w mojej bazy danych bez ich dekodowania w php i zadziałało to bezproblemowo, gdy używał go ponownie po odzyskaniu.

teraz muszę jednak dokonać kilku zmian w danych w łańcuchu, więc dekodować go w PHP, które spowodują w tablicy tak:

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

Moim problemem jest to, że kiedy kodować ta tablica z powrotem do formatu JSON, formatować struny będą następujące:

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

muszę zakodowany ciąg być taka sama, jak tworzy mój javascript, więc bez indeksy tablicy. Czy istnieje prosty sposób na zrobienie tego?

+1

Dlaczego brakujący indeks w tablicy? Myślę, że nie pokazujesz całego kodu dotykającego tej tablicy. Jeśli nie masz ciągłego zestawu liczbowych wartości indeksu, proces json_encode traktuje go jak tablicę asocjacyjną i koduje do notacji obiektu zamiast do notacji tablicowej. –

Odpowiedz

17

Chcesz array_values() funkcję PHP:

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

$ json_out = json_encode (wartość_elektroniczna ($ your_array_here)); –

+1

Umieść ten przykład w swojej odpowiedzi. –

+0

Brakujący indeks może być jednak ważny. – Sirko

Powiązane problemy