Я создаю приложение, которое анализирует каналы json в список действий. Я читал, что новые элементы добавляются внизу списка, и это так в моем приложении. Я пытаюсь исправить это, сортируя вывод моего json по идентификатору в порядке убывания. Не знаю, решит ли это мою проблему, или мне нужно исправить ее в моем Java-коде. Часть первая моего вопроса: изменит ли изменение порядка вывода из базы данных порядок, в котором каналы отображаются в приложении? Если это так, я попытался изменить свой php-скрипт, следуя примерам на http://php.net/manual/en/function.usort.php, но порядок не меняется. Часть вторая, что я делаю не так в следующем скрипте php?
<?php
require("config.inc.php");
$query_params=null;
//initial query
$query = "Select * FROM feeds";
//execute query
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
// Finally, retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();
if ($rows) {
$response["feed"] = array();
foreach ($rows as $row) {
$post = array();
$post["id"] = $row["id"];
$post["name"] = $row["name"];
$post["status"] = $row["status"];
//update our repsonse JSON data
array_push($response["feed"], $post);
}
function cmp($a, $b)
{
if ($a->id == $b->id) {
return 0;
}
return ($a->id > $b->id) ? -1 : 1;
}
$a = array();
usort($a, "cmp");
// echoing JSON response
echo json_encode($response, JSON_NUMERIC_CHECK);
} else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}
?>