在没有循环的情况下内爆多维 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);
我正在使用 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);