5

この構造が示す 12 個の ID を取得しようとしています。

stdClass Object
(
    [checkins] => stdClass Object
        (
            [count] => 12
            [items] => Array
                (
                    [0] => stdClass Object
                        (

                            [venue] => stdClass Object
                                (
                                    [id] => 4564654646456
                                    .
                                    .

そうです:

$checkins = $fsObjUnAuth->get("/users/self/checkins");
$count = $checkins ->response->checkins->count;  // so I can  get 12

 for( $i = 0; $i < $count; $i ++)
  {
      $a1[] = $checkins['items'][$i]['venue']['id'];  //two tries
      $a2[] = $checkins ->response->checkins->items->$i->venue->id;
        echo $i; echo ": ";
        echo $a1;echo"<br>";
        echo $a2;echo"<br>"
  } 

しかし、私は次のようになります: 致命的なエラー: タイプ stdClass のオブジェクトを行内の配列として使用できません..

誰かがこれを行う方法を教えてください。

どうもありがとう

4

3 に答える 3

9

配列添え字演算子を介してオブジェクト メンバーにアクセスすることはできません[]

->次の演算子を使用する必要があります。

$x = new StdClass();

$x->member = 123;

あなたの場合、追加のオブジェクトを含む配列である$checkinsメンバー()を持つオブジェクト()があるため、混合物を使用する必要があります。$items

$a1[] = $checkins->items[$i]->venue->id;
于 2011-03-01T16:00:50.223 に答える
2

関数を使用してphpの配列内のstdClassオブジェクトを変換する簡単なソリューションを次に示しますget_object_vars

見てください:http://php.net/manual/fr/function.get-object-vars.php

元 :

debug($array);
$var = get_object_vars($array);
debug($var);

または置き換えdebugますprint_r

私はCakePHPフレームワークを使用しています

Cdt

于 2013-04-19T09:59:06.117 に答える
0

変化する

$a1[] = $checkins['items'][$i]['venue']['id'];

に変更

$a1[] = $checkins->items[$i]->venue->id; 
于 2011-03-01T16:03:31.643 に答える