2016-08-27 6 views
0

私はJSON配列を持っていますが、私は3つのJSONオブジェクトを持っています。私は3のオブジェクトの数を数えたいと思いますが、それは私に1を与えています。私が "like"というキーを追加しなければ、それは動作します。それを追加した後は動作しません。JSON PHPのオブジェクト数をカウントしますか?

$JSON = '{"like":[' 
      . '{"username":"suraj","password":"abc"},' 
      . '{"username":"don","password":"abc"},' 
      . '{"username":"rana","password":"abc"}' 
      . ']}'; 


    $jsonInPHP = json_decode($JSON); 
    echo count($jsonInPHP); 
+0

'数($ jsonInPHP [ 'などのような二番目のパラメータtrueを渡します')) 'または' count($ jsonInPHP-> like) ' –

+0

$ jsonInPHP = json_decode($ JSON、true); エコーカウント($ jsonInPHP ['like']); – JYoThI

+0

注:2番目のパラメータを 'true'に設定すると、それは連想配列になります。 – Ekin

答えて

1

jsonはオブジェクトではない配列を表します。あなたのオブジェクトでは、あなたはあなたの文字列を復号化し、JSON後に使用すると、1つの特性(like)を持つオブジェクト(またはキーを持つ一つの要素を持つ配列を得るため、この問題が発生し、この

count($jsonInPHP->like); 
1

のように右する必要がありますので、配列であるプロパティと同じように持っていますlike)。

であるあなたは、このプロパティ(またはキー)のサイズをカウントする両方の方法で

// if $jsonInPHP is array 
echo count($jsonInPHP['like']); 
// if $jsonInPHP is object 
echo count($jsonInPHP->like); 
+0

あなたの第2のオプションは、働いて、第1のものではありません –

1

この

$jsonInPHP = json_decode($JSON,true); 
    echo count($jsonInPHP['like']); 
+0

私は、解決策を得たが、真を追加するには、カウント($ jsonInPHP->好き); –

関連する問題