<?php
$arr[] = ['первый',10,'бла'];
$arr[] = ['второй',5,'бла'];
$arr[] = ['третий',11,'бла'];
$sort = [5,11,10];
$sort_map = array_flip($sort); // [5=>0, 11=>1, 10=>2]
usort($arr, function($a, $b) use ($sort_map) {
return $sort_map[$a[1]] - $sort_map[$b[1]];
});
var_dump($arr);
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 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.19, 8.3.0 - 8.3.7
- array(3) {
[0]=>
array(3) {
[0]=>
string(12) "второй"
[1]=>
int(5)
[2]=>
string(6) "бла"
}
[1]=>
array(3) {
[0]=>
string(12) "третий"
[1]=>
int(11)
[2]=>
string(6) "бла"
}
[2]=>
array(3) {
[0]=>
string(12) "первый"
[1]=>
int(10)
[2]=>
string(6) "бла"
}
}
preferences:
136.58 ms | 404 KiB | 171 Q