繁体   English   中英

将嵌套数组转换为逗号分隔的值列表

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM