PHP 要使用 count() 來計算 stdClass Object 數量, 計算出來的數字會有問題, 需要強制轉換成陣列來作計算.
註: 強制轉換方法: (array)$obj_var; 於是就可以 count((array)$obj_var);
PHP 使用 COUNT() 計算 stdClass Object 數量 範例
<?php $r = json_decode('{"list":{"a":1,"b":2,"c":3}}'); print_r($r); /* stdClass Object ( [list] => stdClass Object ( [a] => 1 [b] => 2 [c] => 3 ) ) */ print_r($r->list) /* stdClass Object ( [a] => 1 [b] => 2 [c] => 3 ) */ echo count($r->list); // 1, 預期應該出現 3 echo count((array)$r->list); // 3 ?>
或者於 json_decode() 直接指定轉成 array, ex:
<?php $r = json_decode('{"list":{"a":1,"b":2,"c":3}}', true); echo count($r['list']); // 3 ?>