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

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

相關網頁

作者: Tsung

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

發表迴響

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