我有一点简单的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"和"名称"元素来自:
<?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'];
}
?>
但我无法弄清楚如何获得&#34;关键字&#34;嵌套数组到一个变量中,该变量包含以逗号分隔的值列表的关键字。
我简单地尝试过:
echo $val['keywords'];
但是因为那是一个数组,它会返回这个错误:
注意:数组转换为字符串
然后我尝试了:
echo $val['keywords'][0];
我认为这是正确的,但仍然没有返回任何数据。
答案 0 :(得分:4)
echo implode(',', $val['keywords']);
答案 1 :(得分:1)
尝试加入,
foreach($json_a as $key => $val){
echo join(", ", $val['keywords']);
}
答案 2 :(得分:0)
以下最多可处理2个嵌套级别。您可以使用它迭代并打印整个嵌套数组。
<?php
$arr = ['Your JSON'];
foreach ($arr as $key => $value) {
$string = is_array($value) ? implode(",", $value) : $value;
echo $string;
}
?>