この優れた答えを読んだことがあります。 How can I access an array/object?PHPのネストされた配列オブジェクトのEcho CustomField
しかし、ネストされた配列から必要なオブジェクト値を抽出できないようです。私はキャンペーンモニタAPIを使用しており、次のオブジェクトをダンプします。
これは、私のクエリがvar_dump($ result-> response)で生成しているものです。
Got subscriber
object(stdClass)#728 (6) {
["EmailAddress"]=>
string(29) "[email protected]"
["Name"]=>
string(7) "Alan"
["Date"]=>
string(19) "2016-10-07 17:10:00"
["State"]=>
string(6) "Active"
["CustomFields"]=>
array(4) {
[0]=>
object(stdClass)#727 (2) {
["Key"]=>
string(5) "Phone"
["Value"]=>
string(7) "12345678"
}
[snip]
「キー」文字列を選択し、「値」文字列を取得することによって、電話番号をエコーまたはプリントする方法を教えてください。私は以下(とバリエーション)を試してみましたが、動作しませんでした。
foreach($result->response->CustomFields as $CustomField) {
if(!empty($CustomField->Key->Phone)) {
$phone = $CustomField->Key->Phone->Value;
}
echo 'test phone'. $phone;
}
以下(このスレッドphp accessing attributes in jsonと同様)作業を行う - しかし、整数を使用しての問題点は、[2]以下でのフィールドの数に依存し、それは潜在的に異なるキーに変更することができるということです指定されたユーザーが移入した配列 - このメソッドは信頼できません。
print_r($result->response->CustomFields[2]->Value);
'$ CustomField-> Key'は別の' - > Phone'を持つオブジェクトではなく、文字列です! 'if($ CustomField-> Key == 'Phone')'? – deceze
ありがとうございます。私は試みたが、これはうまくいかなかった。 – Sol