gpt4 book ai didi

PHP json 用父类和子类编码数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:08 24 4
gpt4 key购买 nike

我正在尝试使用 json_encoding 大约两个小时,但我没有得到所需的输出。实际上,这是对以我将在此处解释的格式询问的移动应用程序开发人员的要求。下面的代码是我尝试过的:

include_once("class_connection.php");

//Getting the Parent Category

$sqlStr = mysql_query("select catname , id from `category` where `parentid`='0'");
$jsonArray = array();

while ($fetchStr = mysql_fetch_assoc($sqlStr)) {

$jsonArray[] = array("ParentCategory" => $fetchStr["catname"]);
$id = $fetchStr['id'];

//Getting child categories from the above parent

$sqlChildStr = mysql_query("SELECT catname,id,parentid FROM `category` where `parentid`='$id'");

while ($fetchchildStr = mysql_fetch_assoc($sqlChildStr)) {

$jsonArray[] = array("ChildCategory" => $fetchchildStr["catname"]);
}

}

echo json_encode(array("JsonOutput" => $jsonArray)) . "<br />";

输出是:

"JsonOutput":[{"ParentCategory":"Animals"},{"ChildCategory":"Bear"},{"ChildCategory":"Deer"},{"ChildCategory":"Dolphins"},
{"ParentCategory":"Art"},{"ChildCategory":"Hand Painting"},{"ChildCategory":"Painting"},{"ChildCategory":"3D"},{"ChildCategory":"Abstract"}]}

这里,在上面的输出中,父类别数组是空的,没有它的子类别数组。我想将所有子类别数组存储在其父类别数组中,最后我必须将父类别和子类别存储到 JsonOutput 数组中,所以我希望输出为

"JsonOutput":[{
"ParentCategory":"Animals" : [{
{"ChildCategory":"Bear"},{"ChildCategory":"Deer"},{"ChildCategory":"Dolphins"}
]}
"ParentCategory":"Arts" : [{
{"ChildCategory":"Hand Painting"},{"ChildCategory":"Painting"},{"ChildCategory":"3D"}, {"ChildCategory":"Abstract"}
]}
]}

最佳答案

您可能需要这样做(只显示重要的部分):

$jsonArray = array();
while ($parentCat = mysql_fetch_assoc($sqlStr)) {
$temp = array(
"ParentCategory" => $parentCat["catname"]
);
while ($childCat = mysql_fetch_assoc($sqlChildStr)) {
$temp["ChildCategory"][] = array(
"ChildCategory" => $childCat["catname"]
);
}
$jsonArray[] = $temp;
}

我使用了一个临时变量来存储和操作父类别。这会在循环结束时添加到主数组中。

关于PHP json 用父类和子类编码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com