PHP 如何為 json_encode 移除 Array Index

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。

要串接在任何層級,遇到此情況,都可以使用。

  1. <?php
  2. $a = [
  3. 1 => 'a',
  4. 2 => 'b',
  5. 3 => 'c',
  6. 4 => [
  7. 1 => 'aa',
  8. 2 => 'bb',
  9. 3 => 'cc',
  10. ]
  11. ];
  12. print_r('$a: ' . json_encode($a)); // {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}}
  13. echo "\n";
  14. print_r('$a: ' . json_encode(array\_values($a))); // ["a","b","c",{"1":"aa","2":"bb","3":"cc"}]
  15. echo "\n";
  16. print_r('$a[4]: ' . json_encode($a[4])); // {"1":"aa","2":"bb","3":"cc"}
  17. echo "\n";
  18. print_r('$a[4]: ' . json_encode(array\_values($a[4]))); // ["aa","bb","cc"]
  19. echo "\n";
  20. print_r('$a: ' . json_encode($a)); // {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}}
  21. echo "\n";
  22. $a[4] = array_values($a[4]); // only [4] remove index
  23. print_r('$a: ' . json_encode($a) . ' ([4] remove index)'); // {"1":"a","2":"b","3":"c","4":["aa","bb","cc"]}
  24. echo "\n";
  25. // $a: {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}}
  26. // $a: ["a","b","c",{"1":"aa","2":"bb","3":"cc"}]
  27. // $a[4]: {"1":"aa","2":"bb","3":"cc"}
  28. // $a[4]: ["aa","bb","cc"]
  29. // $a: {"1":"a","2":"b","3":"c","4":{"1":"aa","2":"bb","3":"cc"}}
  30. // $a: {"1":"a","2":"b","3":"c","4":["aa","bb","cc"]} ([4] remove index)
  31. ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料