<?php
$array = [
['array-5', 0],
['array-7', -.5],
['array-4', 0],
['array-1',-1],
['array-3', 2],
['array-6', .5],
['array-2', 3],
['array-8', -2]
];
$notNegs = [];
$absVals = [];
foreach ($array as [1 => $v]) {
$abs = abs($v);
$absVals[] = $abs;
$notNegs[] = $v === $abs;
}
array_multisort($notNegs, $absVals, SORT_DESC, $array);
var_export($array);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- array (
0 =>
array (
0 => 'array-8',
1 => -2,
),
1 =>
array (
0 => 'array-1',
1 => -1,
),
2 =>
array (
0 => 'array-7',
1 => -0.5,
),
3 =>
array (
0 => 'array-2',
1 => 3,
),
4 =>
array (
0 => 'array-3',
1 => 2,
),
5 =>
array (
0 => 'array-6',
1 => 0.5,
),
6 =>
array (
0 => 'array-4',
1 => 0,
),
7 =>
array (
0 => 'array-5',
1 => 0,
),
)
preferences:
60.64 ms | 408 KiB | 5 Q