<?php
// Assume that this is the data that we get back from get_users or a similar function
$users = array(
0 => array(
'name' => 'Tom',
'payments' => array(
0 => array(
'date' => '2020-04-15',
'amount' => '750',
),
1 => array(
'date' => '2020-04-20',
'amount' => '900',
),
),
),
1 => array(
'name' => 'Dick',
'payments' => array(
0 => array(
'date' => '2020-04-10',
'amount' => '750',
),
1 => array(
'date' => '2020-04-15',
'amount' => '900',
),
2 => array(
'date' => '2020-04-25',
'amount' => '1250',
),
),
),
2 => array(
'name' => 'Harry',
'payments' => array(
0 => array(
'date' => '2020-04-24',
'amount' => '750',
),
),
),
);
function sort_users_by_date( $user1, $user2 ) {
$date1 = end($user1['payments'])['date'];
$date2 = end($user2['payments'])['date'];
return strtotime($date2) - strtotime($date1);
}
usort($users, 'sort_users_by_date');
var_dump($users);
preferences:
53.65 ms | 402 KiB | 5 Q