2017-01-08 3 views
0

JSONで問題が発生しています。 JSONを変数IDの昇順に並べ替えたいJsonソートbyデータベースから取得する

これは、現時点では私が今使っている

{"server_response":[{"id":"9","email":"[email protected]=","password":"test"},{"id":"5","email":"[email protected]","password":"json"},{"id":"14","email":"[email protected]","password":"test"},{"id":"13","email":"[email protected]=","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); 
 

 
?>

JSONデータをあるさ。しかしためbelow.Anyの変化を示すように私は私の出力をしたいですPHPファイル???

{"server_response":[{"id":"5","email":"[email protected]","password":"json"},{"id":"9","email":"[email protected]=","password":"test"},{"id":"13","email":"[email protected]=","password":"mail"},{"id":"14","email":"[email protected]","password":"test"}]} 
+0

を試してみてください、あなたのクエリでDESCを使用するか、クライアント側で並べ替えます –

答えて

0

クライアント側でソートすることはできますが、サーバー側からのみ行う方がよいでしょう。あなたがする必要があります:

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

これは動作するはずです。降順で使用する場合は、idの後ろに 'desc'というキーワードを追加します(一重引用符は使用しないでください)。

0

どちらか...コードの下に

<?php 

$json = '{"server_response":[{"id":"9","email":"[email protected]=","password":"test"},{"id":"5","email":"[email protected]","password":"json"},{"id":"14","email":"[email protected]","password":"test"},{"id":"13","email":"[email protected]=","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; 
} 
?> 
関連する問題