[英]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.