Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何反转此json_Php_Sql_Json - Fatal编程技术网

Php 如何反转此json

Php 如何反转此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

我对数组反转有一个问题。我尝试了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。我想要的是,我想要扭转这种局面。回归后

{
"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);