从PHP中的嵌套数组对象中回显CustomField

时间:2016-11-14 03:39:02

标签: php object

我读过这个优秀的答案; How can I access an array/object?

但是,我似乎无法从嵌套数组中提取出我需要的对象值。我正在使用广告系列监控API,它会转储以下对象。我需要能够回显或print_r“电话”自定义字段值:

这是我的查询在var_dump($ result-> response)中生成的内容;

Got subscriber

object(stdClass)#728 (6) {
  ["EmailAddress"]=>
  string(29) "example@mail.com"
  ["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]

如何通过选择“Key”字符串并抓取“Value”字符串来回显或print_r电话号码?我试过下面(和变化)但没有工作;

foreach($result->response->CustomFields as $CustomField) {
    if(!empty($CustomField->Key->Phone)) {
         $phone = $CustomField->Key->Phone->Value;
    }

echo 'test phone'. $phone;

}

以下DOES工作(类似于此线程php accessing attributes in json) - 但是,使用下面的整数[2]的问题是它可能会更改为不同的键,具体取决于中的字段数给定用户填充的数组 - 因此此方法不可靠;

print_r($result->response->CustomFields[2]->Value); 

1 个答案:

答案 0 :(得分:1)

你这样做的那一刻:

foreach($result->response->CustomFields as $CustomField) {

您可以访问以下字段:

$CustomField->Key
$CustomField->Value

因此,如果您想进一步处理它,您可以执行以下操作:

$someClass->{$CustomField->Key} = $CustomField->Value

其转换为: $ someClass-> Phone =" 12345678" 。这很大程度上取决于你接下来要用值做什么。