[英]Convert nested array into comma separated list of values
我有一个简单的JSON,如下所示:
{
"grinning": {
"unicode": "1f600",
"unicode_alternates": "",
"name": "grinning face",
"shortname": ":grinning:",
"category": "people",
"emoji_order": "1",
"aliases": [
],
"aliases_ascii": [
],
"keywords": [
"happy",
"joy",
"smile",
"grin",
"smiling",
"smiley",
"person"
]
},
"grimacing": {
"unicode": "1f62c",
"unicode_alternates": "",
"name": "grimacing face",
"shortname": ":grimacing:",
"category": "people",
"emoji_order": "2",
"aliases": [
],
"aliases_ascii": [
],
"keywords": [
"teeth",
"grimace",
"disapprove",
"pain",
"person"
]
}
}
我可以通过以下方式访问“ unicode”和“ name”元素:
<?php
$str = file_get_contents('http://localhost/_testing/emoji/emoj1-test.json');
$json_a = json_decode($str, true);
foreach($json_a as $key => $val) {
echo $val['unicode'];
echo $val['name'];
}
?>
但是我无法弄清楚如何将“关键字”嵌套数组放入一个变量,该变量包含以逗号分隔的值列表形式保存的关键字。
我简单地尝试过:
echo $val['keywords'];
但是因为这是一个数组,所以它返回此错误:
注意:数组到字符串的转换
然后,我尝试:
echo $val['keywords'][0];
我认为这是正确的做法,但仍然不返回任何数据。
echo implode(',', $val['keywords']);
尝试加入,
foreach($json_a as $key => $val){
echo join(", ", $val['keywords']);
}
以下内容最多可嵌套2级。 您可以迭代并打印整个嵌套数组。
<?php
$arr = ['Your JSON'];
foreach ($arr as $key => $value) {
$string = is_array($value) ? implode(",", $value) : $value;
echo $string;
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.