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
?>