PHP从单个stdClass对象数组的关联数组中获取/检查值

时间:2019-03-07 12:34:01

标签: php arrays stdclass

对此存在实际问题。我希望能够从通过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。

1 个答案:

答案 0 :(得分:3)

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

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")));