【问题标题】:PHP Get / check value from associative array in array of individual stdClass ObjectsPHP从单个stdClass对象数组中的关联数组中获取/检查值
【发布时间】:2019-03-07 12:34:01
【问题描述】:

对此有真正的问题。我希望能够从通过 API 返回的数据中获取值。

即获得价值

$CM_user_customfields['Organisation'],   
$CM_user_customfields->Organisation.

这可能吗?我尝试过循环并重建数组,但我总是得到类似的结果,而且可能是想多了。

我不能使用 [int] =>,因为自定义字段的数量会发生很大变化。

$CM_user_customfields =  $CM_details->response->CustomFields ;
echo '<pre>' . print_r( $CM_user_customfields, true ) . '</pre>';

// returns
Array
(
    [0] => stdClass Object
        (
            [Key] => Job Title
            [Value] => Designer / developer
        )

    [1] => stdClass Object
        (
            [Key] => Organisation
            [Value] => Jynk
        )

    [2] => stdClass Object
        (
            [Key] => liasoncontact
            [Value] => Yes
        )

    [3] => stdClass Object
...

非常感谢,D.

【问题讨论】:

  • $CM_user_customfields->Organisation 在这种情况下,您没有密钥组织,因此您必须从 API 返回正确的数组。所以也许你可以像这样访问 $CM_user_customfields->Key 但你的问题不是很清楚
  • 我想我已经明白你的意思了。您可以通过混合使用 array_searcharray_column 来做到这一点。

标签: php arrays stdclass


【解决方案1】:

我建议先转换为关联数组:

foreach($CM_user_customfields as $e) {
    $arr[$e->Key] = $e->Value;
}

现在您可以通过以下方式访问它:

echo $arr['Organisation'];

您也可以通过以下方式实现:(PHP 7 可以转换 stdClass 并且会成功)

$arr = array_combine(array_column($CM_user_customfields, "Key"), array_column($CM_user_customfields, "Value")));

【讨论】:

  • 天哪 - 非常感谢。字面意思是在圈子里转了几个小时。使用PHP7。 $arr = array_combine(array_column($CM_user_customfields, "Key"), array_column($CM_user_customfields, "Value")); print_r($arr); echo $arr['订阅者类型'];
猜你喜欢
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-07
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多