我有一个关于数组反转的问题。我试过 array_reverse(...,true) 但它不起作用。可能是我申请的地方不对。所以我已经在下面附上了我的 php 代码和 json 结果。请帮我扭转这个json。$conn = mysqli_connect(HOST,USER,PASS,DB);$sql = mysqli_query($conn,"SELECT story_id,story_name,story_author,story_cover_link FROM short_story WHERE parent=0");// parent categories node$categories = array("Categories" => array());while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)) { $story_id = $row['story_id']; $ssql = mysqli_query($conn,"SELECT story_id,chapter_name,chapter_link FROM short_story WHERE parent='$story_id'"); // single category node $category = array(); // temp array $category["story_id"] = $row["story_id"]; $category["story_name"] = $row["story_name"]; $category["story_author"] = $row["story_author"]; $category["story_cover_link"] = $row["story_cover_link"]; $category["chapters"] = array(); // subcategories again an array while ($srow = mysqli_fetch_array($ssql,MYSQLI_ASSOC)) { $subcat = array(); // temp array $subcat["story_id"] = $srow['story_id']; $subcat["chapter_name"] = $srow['chapter_name']; $subcat["chapter_link"] = $srow['chapter_link']; // pushing sub category into subcategories node array_push($category["chapters"], $subcat); } // pushing sinlge category into parent array_push($categories["Categories"], $category); } echo json_encode($categories);这是生成的 json。我想要的是,我想扭转这个。回归后
3 回答

开心每一天1111
TA贡献1836条经验 获得超13个赞
是有一个替代解决方案可以消除更改查询的需要并略微提高性能。如果您尝试以Categories相反的顺序添加,只需使用array_unshift()而不是 array_push():
// pushing sinlge category into parent
array_unshift($categories["Categories"], $category);
如果您想对以下内容执行相同操作chapters:
// pushing sub category into subcategories node
array_unshift($category["chapters"], $subcat);

精慕HU
TA贡献1845条经验 获得超8个赞
如果您正在寻找的只是让 ID 降序而不是升序,则不需要修改整个数组。您可以只查询数据库以按该顺序传递数据,然后像您已经做的那样运行它。
改变这个:
$sql = mysqli_query($conn,"SELECT story_id,story_name,story_author,story_cover_link FROM short_story WHERE parent=0");
对此:
$sql = mysqli_query($conn,"SELECT story_id,story_name,story_author,story_cover_link FROM short_story WHERE parent=0 ORDER BY story_id DESC");

回首忆惘然
TA贡献1847条经验 获得超11个赞
您可以使用array_reverse
基本功能。这反转了你的数组。
像这样简单快速:
$categories['Categories'] = array_reverse($categories['Categories']);echo json_encode($categories);
- 3 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消