user5557182
user5557182

Reputation:

Sort JSON by ID

I have following JSON file:

[{
    "id": 9,
    "title": "Birthday",
    "description": "Debut Party",
    "start": "2017-07-25T15:01",
    "end": "2017-08-03T00:01",
    "url": "https:\/\/bd.com"
}, {
    "id": 11,
    "title": "Anniversary",
    "description": "First Ann",
    "start": "2017-06-28T15:00",
    "end": "2017-07-08T02:58",
    "url": "https:\/\/anniversary.com\/"
}, {
    "id": 5,
    "title": "Anniversary",
    "description": "First Ann",
    "start": "2017-06-28T15:00",
    "end": "2017-07-08T02:58",
    "url": "https:\/\/anniversary.com\/"
}]

I want them to be sorted by id like 5,9,11 using PHP. How Can I do that?

Upvotes: 0

Views: 573

Answers (2)

Yamen Nassif
Yamen Nassif

Reputation: 2486

First decode the JSON

$array = json_decode($json,true);

and then use usort to sort by id or something else.

function sortById($a, $b) {
    return $b->id - $a->id;
}
usort($array,"sortById");

Upvotes: 2

emen
emen

Reputation: 170

SELECT * FROM test ORDER BY `id` DESC;

use this query in you php file. example :

function getPosts()
{
    $connection = mysqli_connect("localhost", "root", "", DatabaseManager::DATABASE_NAME);
    $sqlQuery = "SELECT * FROM posts order by 'id' desc;";
    $result = $connection->query($sqlQuery);
    $postsArray = array();
    if ($result->num_rows > 0) {
        for ($i = 0; $i < $result->num_rows; $i++) {
            $postsArray[$i] = $result->fetch_assoc();
        }
    }
    echo json_encode($postsArray);
}

Upvotes: -1

Related Questions