[英]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.