在没有循环的情况下内爆多维 JSON 数组 (PHP)

Implode a multidimensional JSON array (PHP) without loops

我正在使用 REST API 并在 JSON 中返回响应。这是它看起来像的 print_r 版本:

        [topics] => Array
            (
                [0] => stdClass Object
                    (
                        [provider] => klout
                        [value] => Facebook
                    )

                [1] => stdClass Object
                    (
                        [provider] => klout
                        [value] => Business
                    )
                [2] => stdClass Object
                    (
                        [provider] => klout
                        [value] => LinkedIn
                    )

我需要获取 [provider] 值并将其转换为字符串。

我 运行 PHP 5.4 所以我 array_column 不是一个选项。

我试过这里的说明:

$topics_array = $json->digitalFootprint->topics;
$arr = array_map(function($topics_array){ return $topics_array['value']; }, $arr);
$implode_topics = implode("[,,]", $arr);

但是我返回了一条错误消息 "Cannot use object of type stdClass as array"

如有任何帮助,我们将不胜感激。

这只是您如何访问 属性 的问题 - 它是一个对象,而不是数组:

$arr = array_map(function($topics_array){ return $topics_array->value; }, $arr);

尝试在嵌套的 foreach 循环中将 array_map 与 null 函数一起使用,然后收集时间数组上的值,最后内爆此数组。例如:

$arr = array_map(null,$topics_array);
$arr_temp = [];
foreach(array_map(null,$arr) as $i) {
    foreach(array_map(null,$i) as $j) {
      $arr_temp[] = ($j->value);
    }
}

$result_string = implode(', ', $arr_temp);