<?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($date1) - strtotime($date2);
}
usort($users, 'sort_users_by_date');
var_dump($users);
- Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- array(3) {
[0]=>
array(2) {
["name"]=>
string(3) "Tom"
["payments"]=>
array(2) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-15"
["amount"]=>
string(3) "750"
}
[1]=>
array(2) {
["date"]=>
string(10) "2020-04-20"
["amount"]=>
string(3) "900"
}
}
}
[1]=>
array(2) {
["name"]=>
string(5) "Harry"
["payments"]=>
array(1) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-24"
["amount"]=>
string(3) "750"
}
}
}
[2]=>
array(2) {
["name"]=>
string(4) "Dick"
["payments"]=>
array(3) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-10"
["amount"]=>
string(3) "750"
}
[1]=>
array(2) {
["date"]=>
string(10) "2020-04-15"
["amount"]=>
string(3) "900"
}
[2]=>
array(2) {
["date"]=>
string(10) "2020-04-25"
["amount"]=>
string(4) "1250"
}
}
}
}
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
array(3) {
[0]=>
array(2) {
["name"]=>
string(3) "Tom"
["payments"]=>
array(2) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-15"
["amount"]=>
string(3) "750"
}
[1]=>
array(2) {
["date"]=>
string(10) "2020-04-20"
["amount"]=>
string(3) "900"
}
}
}
[1]=>
array(2) {
["name"]=>
string(5) "Harry"
["payments"]=>
array(1) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-24"
["amount"]=>
string(3) "750"
}
}
}
[2]=>
array(2) {
["name"]=>
string(4) "Dick"
["payments"]=>
array(3) {
[0]=>
array(2) {
["date"]=>
string(10) "2020-04-10"
["amount"]=>
string(3) "750"
}
[1]=>
array(2) {
["date"]=>
string(10) "2020-04-15"
["amount"]=>
string(3) "900"
}
[2]=>
array(2) {
["date"]=>
string(10) "2020-04-25"
["amount"]=>
string(4) "1250"
}
}
}
}
preferences:
151.35 ms | 404 KiB | 181 Q