如何将我的一维关联数组转换为多维数组?

时间:2015-01-13 14:28:56

标签: php jquery arrays multidimensional-array

我在PHP中有这样的数组返回了查询结果集的json。

    [
       {
          "ailment_id": "1",
          "ailment_name": "Food Poisoning",
          "symptom_name": "Fever",
          "symptom_id": "1",
          "stype_id": "1"
       },
       {
          "ailment_id": "1",
          "ailment_name": "Food Poisoning",
          "symptom_name": "Nausea ",
          "symptom_id": "4",
          "stype_id": "4"
       },
       {
          "ailment_id": "1",
          "ailment_name": "Food Poisoning",
          "symptom_name": "Vomiting",
          "symptom_id": "5",
          "stype_id": "4"
       },
       {
          "ailment_id": "2",
          "ailment_name": "Dengue",
          "symptom_name": "Fever",
          "symptom_id": "1",
          "stype_id": "1"
       },
       {
          "ailment_id": "2",
          "ailment_name": "Dengue",
          "symptom_name": "Headache",
          "symptom_id": "3",
          "stype_id": "2"
       },
       {
          "ailment_id": "2",
          "ailment_name": "Dengue",
          "symptom_name": "Vomiting",
          "symptom_id": "5",
          "stype_id": "4"
       },
       {
          "ailment_id": "2",
          "ailment_name": "Dengue",
          "symptom_name": "Joint Pain",
          "symptom_id": "7",
          "stype_id": "5"
       },
       {
          "ailment_id": "3",
          "ailment_name": "Flu",
          "symptom_name": "Fever",
          "symptom_id": "1",
          "stype_id": "1"
       },
       {
          "ailment_id": "3",
          "ailment_name": "Flu",
          "symptom_name": "Headache",
          "symptom_id": "3",
          "stype_id": "2"
       },
      {
      "ailment_id": "3",
      "ailment_name": "Flu",
      "symptom_name": "Chronic Cough",
      "symptom_id": "2",
      "stype_id": "1"
      },
   {
      "ailment_id": "4",
      "ailment_name": "Common Cold",
      "symptom_name": "Sore Throat",
      "symptom_id": "6",
      "stype_id": "1"
   }
]

我想将它们分组到这个中,其中一个id作为父键,其值为name。重复的父键将级联,只需将子项分配到同一父项。 我不确定格式化,我想你可以理解:

{
   "1": {
      "stype" : "1",
      "child" : { "1": {
                "symptom_id": "1",
                "symptom_name": "Fever",
                "child" : {
                    "1": {
                            "ailment_id": "1",
                            "ailment_name": "Food Poisoning" 
                         },
                    "2": {
                            "ailment_id": "2",
                            "ailment_name": "Dengue"
                        },
                    "3": {
                            "ailment_id": "3",
                            "ailment_name": "Flu"
                            }
                    }
                },
                 "4": {
                  "symptom_id": "6",
                  "symptom_name": "Sore Throat",
                  "child" : {
                     "4": {
                            "ailment_id": "4",
                            "ailment_name": "Common Cold"
                            }
                        }
                    }
        },
    "4" {           
      "stype" : "4",
      "child" : { "4" :  {
                "symptom_name": "Nausea",
                "symptom_id": "4",
                "child" : {
                        "ailment_id": "1",
                        "ailment_name": "Food Poisoning",
                            }
                    }
            }
        },
    "2" {
      "stype" : "2",
      "child" : { "3" : {
                "symptom_name": "Headache",
                "symptom_id": "3",
                "child" : {     
                        "ailment_id": "2",
                        "ailment_name": "Dengue",
                        }
                    }
                }
            }, .... and so on}

无论如何我可以在PHP / Jquery中执行此操作吗?我将使用最终数组将它们转换为3个多选框的多选链。有关于此的任何提示吗?

编辑:我试过了什么?像这样的东西。

while($row = mysqli_fetch_assoc($result))
{
$sid = $row["symptom_id"];
$sname = $row["symptom_name"];
$stype = $row["stype_id"];
$aname = $row["ailment_name"];
$aid = $row["ailment_id"];
?>
var selectValues2 = { "<?php echo $stype; ?>" : 
                                        {   
                                            "<?php echo $sname ?>" : 
                                                    [ 
                                                    "<?php echo $aid ?>",
                                                    "<?php echo $aname; ?>" 
                                                    ]
                                        }
                    };
  <?php 
  }
  ?>

不能正常运作..

0 个答案:

没有答案