Есть массив
$arr = array(
array('id'=>1,'value'=>4),
array('id'=>2,'value'=>6),
array('id'=>3,'value'=>2.5),
array('id'=>4,'value'=>-2),
array('id'=>5,'value'=>3),
array('id'=>6,'value'=>2.6),
array('id'=>7,'value'=>3),
array('id'=>8,'value'=>3),
array('id'=>9,'value'=>-3),
);
и число например 2,6 и нужно отсортировать массив так чтоб первыми были самые ближайшие к нему
usort($arr, function($a, $b){
$c_v = 2.6;
return abs(($a['value'] - $c_v) - ($b['value'] - $c_v)); // тут возможно бред - уже изменял 100000 раз и запутался
});
не получается отсортировать по ближайшим в массиве включая при этом отрицательные числа и float
должно получиться:
array('id'=>6,'value'=>2.6),
array('id'=>3,'value'=>2.5),
array('id'=>6,'value'=>4),
array('id'=>5,'value'=>3),
array('id'=>7,'value'=>3),
array('id'=>8,'value'=>3),
.........