Php 如何反转此json
我对数组反转有一个问题。我尝试了array_reverse(…,true),但它不起作用。可能是我申请的地方错了。所以我已经在下面附上了我的php代码和json结果。请帮助我反转这个jsonPhp 如何反转此json,php,sql,json,Php,Sql,Json,我对数组反转有一个问题。我尝试了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 pa
$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。我想要的是,我想要扭转这种局面。回归后
{
"Categories": [{
"story_id": "1",
"story_name": "Nethuu",
"story_author": "Gimhani Thennakon",
"story_cover_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Cover\/sonduru_nawodaya.jpg",
"chapters": [{
"story_id": "7",
"chapter_name": "Nethu - 1",
"chapter_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Novel\/gal%20kanda%20walawwa.pdf"
}, {
"story_id": "8",
"chapter_name": "Nethu - 2",
"chapter_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Novel\/gal%20kanda%20walawwa.pdf"
}, {
"story_id": "9",
"chapter_name": "Nethu - 3",
"chapter_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Novel\/gal%20kanda%20walawwa.pdf"
}]
}, {
"story_id": "2",
"story_name": "Sewwandi",
"story_author": "Gayana S Lakmali",
"story_cover_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Cover\/gal%20kanda%20walawwa.jpg",
"chapters": [{
"story_id": "10",
"chapter_name": "Sewwandi - 1",
"chapter_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Novel\/gal%20kanda%20walawwa.pdf"
}, {
"story_id": "11",
"chapter_name": "Sewwandi - 2",
"chapter_link": "http:\/\/appzoneproduction.xyz\/sinhala_novels\/Novel\/gal%20kanda%20walawwa.pdf"
}]
}]
}
谢谢你如果你想要的是让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");
@Ice76是正确的,但是有一种替代解决方案,它可以消除更改查询的需要,并略微提高性能。如果您试图以相反的顺序添加
类别
,只需使用而不是array_push():
如果要对章节执行相同操作
:
// pushing sub category into subcategories node
array_unshift($category["chapters"], $subcat);
您可以使用基本功能。这将反转您的阵列
像这样简单快捷:
$categories['Categories'] = array_reverse($categories['Categories']);
echo json_encode($categories);
你说的反向是什么意思?是否要
“story\u id”:“2”
json的第一个索引?是。我希望id索引为2,1
$categories['Categories'] = array_reverse($categories['Categories']);
echo json_encode($categories);