PHP 與 JavaScript 串接經常回傳 JSON 格式,但是會遇到 PHP 的 Array 預設 Index (Assoc array key reference index) 都會有 1、2、3 ...,要怎麼移除這 Index 在傳給 JavaScript 呢?
PHP 如何為 json_encode 移除 Array Index
PHP 要移除 Array Index,等於就是只要 Array 的 Value 值,可以使用 array_values 的 Function。
要串接在任何層級,遇到此情況,都可以使用。
<?php $a = [ 1 => 'a', 2 => 'b', 3 => 'c', 4 => [ 1 => 'aa', 2 => 'bb', 3 => 'cc', ] ]; print_r('$a: ' . json_encode($a)); // {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}} echo "\n"; print_r('$a: ' . json_encode(array\_values($a))); // ["a","b","c",{"1":"aa","2":"bb","3":"cc"}] echo "\n"; print_r('$a[4]: ' . json_encode($a[4])); // {"1":"aa","2":"bb","3":"cc"} echo "\n"; print_r('$a[4]: ' . json_encode(array\_values($a[4]))); // ["aa","bb","cc"] echo "\n"; print_r('$a: ' . json_encode($a)); // {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}} echo "\n"; $a[4] = array_values($a[4]); // only [4] remove index print_r('$a: ' . json_encode($a) . ' ([4] remove index)'); // {"1":"a","2":"b","3":"c","4":["aa","bb","cc"]} echo "\n"; // $a: {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}} // $a: ["a","b","c",{"1":"aa","2":"bb","3":"cc"}] // $a[4]: {"1":"aa","2":"bb","3":"cc"} // $a[4]: ["aa","bb","cc"] // $a: {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}} // $a: {"1":"a","2":"b","3":"c","4":["aa","bb","cc"]} ([4] remove index) ?>