Php 中json数组到ul li数组到字符串的转换

Php 中json数组到ul li数组到字符串的转换,php,json,Php,Json,我有一个json数组,希望转换为ul li,但我得到错误: $data = '[{ "sym": [{ "Cough" : [ { "title" : "Cough is", "options" : { "1" : "Dry", "2" : "Producing phlegm or sputum" } },{ "title":"Problem is", "options

我有一个json数组,希望转换为ul li,但我得到错误:

$data = '[{
  "sym": [{
    "Cough" : [
     {
      "title" : "Cough is",
      "options" : {
        "1" : "Dry",
        "2" : "Producing phlegm or sputum"
      }
    },{
      "title":"Problem is",
         "options" : {
        "3" : "New or recent",
        "4" : "Ongoing or recurrent",
        "5" : "Worsening or progressing"
      }
    }
    ],
    "Ear problems": [
      {
        "title" : "Triggered by",
        "options" : {
          "1" : "Change in air pressure",
          "2" : "Injury or trauma"
        }
      }
    ]
  }]
}]';

$json = json_decode($data, true);
我尝试的是:

foreach($json[0]['sym'][0] as $js){
    foreach($js as $j){
        echo "<li>". $j['title']."</li>";
    }
}
foreach($json[0]['sym'][0]as$js){
foreach($js作为$j){
回声“
  • ”$j['title']。“
  • ”; } }
  • 但它只是回显“title”,但我想这样回显嵌套:

    • 咳嗽
      • 咳嗽是
        • 干的
        • 咳痰
      • 问题是
        • 新的或最近的
        • 持续的或经常性的
        • 恶化或进展
    • 耳朵问题

    foreach
    替换为:

    foreach($json[0]['sym'][0] as $js){
        foreach($js as $j){
            echo "<li>". $j['title'] . "<ul>";
            foreach ($j['options'] as $opt) {
                echo "<li>". $opt."</li>";
            }
            echo "</ul></li>";
        }
    }
    
    foreach($json[0]['sym'][0]as$js){
    foreach($js作为$j){
    回声“
  • ”$j['title']。“
      ”; foreach($j['options']作为$opt){ 回显“
    • ”$opt.
    • ”; } 回声“
  • ”; } }
    所以循环
    $j['options']
    然后创建最里面的LI…?但这不是回显名称。@tourtravel您能告诉我上面的代码打印什么以及您希望它打印什么吗。您可以编辑您的问题并添加为以下更新。