簡體   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