PHP 使用 COUNT() 計算 stdClass Object 數量

PHP 要使用 count() 來計算 stdClass Object 數量, 計算出來的數字會有問題, 需要強制轉換成陣列來作計算.

註: 強制轉換方法: (array)$obj_var; 於是就可以 count((array)$obj_var);

PHP 使用 COUNT() 計算 stdClass Object 數量 範例

  1. <?php
  2. $r = json_decode('{"list":{"a":1,"b":2,"c":3}}');
  3. print_r($r);
  4. /*
  5. stdClass Object
  6. (
  7. [list] => stdClass Object
  8. (
  9. [a] => 1
  10. [b] => 2
  11. [c] => 3
  12. )
  13. )
  14. */
  15. print_r($r->list)
  16. /*
  17. stdClass Object
  18. (
  19. [a] => 1
  20. [b] => 2
  21. [c] => 3
  22. )
  23. */
  24. echo count($r->list); // 1, 預期應該出現 3
  25. echo count((array)$r->list); // 3
  26. ?>

或者於 json_decode() 直接指定轉成 array, ex:

  1. <?php
  2. $r = json_decode('{"list":{"a":1,"b":2,"c":3}}', true);
  3. echo count($r['list']); // 3
  4. ?>

相關網頁

作者: Tsung

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

發表迴響

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