簡體   English   中英

Json按ID排序,將從數據庫獲取

[英]Json sort by id which will be obtained from database

我在JSON中遇到問題。 我想按變量ID的升序對JSON進行排序。

目前是JSON數據

{"server_response":[{"id":"9","email":"test@gmail.com=","password":"test"},{"id":"5","email":"json@gmail.com","password":"json"},{"id":"14","email":"wrong@gmail.com","password":"test"},{"id":"13","email":"mail@gmail.com=","password":"mail"}]}

我現在正在使用的PHP文件是

 <?php require_once('dbConnect.php'); $sql = "select * from users;"; $result = mysqli_query($con,$sql); $response = array(); while($row = mysqli_fetch_array($result)) { array_push($response,array("id"=>$row[0],"email"=>$row[1],"password"=>$row[2])); } echo json_encode(array("server_response"=>$response)); mysqli_close($con); ?> 

但是我想要我的輸出如下所示.php文件的任何更改?

{"server_response":[{"id":"5","email":"json@gmail.com","password":"json"},{"id":"9","email":"test@gmail.com=","password":"test"},{"id":"13","email":"mail@gmail.com=","password":"mail"},{"id":"14","email":"wrong@gmail.com","password":"test"}]}

您可以在客戶端進行排序,但是最好僅從服務器端進行排序。 您需要做的是:

$sql = "select * from users order by id;";

這應該工作。 如果要按降序排列,請在id后添加關鍵字:'desc'(不帶單引號)。

請嘗試以下代碼...

<?php

$json = '{"server_response":[{"id":"9","email":"test@gmail.com=","password":"test"},{"id":"5","email":"json@gmail.com","password":"json"},{"id":"14","email":"wrong@gmail.com","password":"test"},{"id":"13","email":"mail@gmail.com=","password":"mail"}]}
';
$arr = json_decode($json,true); //Converts your json into array

$main = $arr['server_response']; // your array for sorting

$list = array_sort($main, 'id', SORT_ASC); //makes function call
print_r($list);  //desired result

function array_sort($array, $on, $order=SORT_ASC){

    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }

        foreach ($sortable_array as $k => $v) {
            $new_array[$k] = $array[$k];
        }
    }

    return $new_array;
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM