Я использую usort для сортировки массива с ассоциативным массивом внутри каждого элемента.
Когда все значения, которые я сортирую в массиве, одинаковы, они все равно изменяют положение элементов в массиве, есть ли способ предотвратить это?
Например это:
array(
array('name' => 'Ben', 'authn_weight' => 85.3),
array('name' => 'Josh', 'authn_weight' => 85.3),
array('name' => 'Fred', 'authn_weight' => 85.3)
);
Можно изменить на это:
array(
array('name' => 'Josh', 'authn_weight' => 85.3),
array('name' => 'Ben', 'authn_weight' => 85.3),
array('name' => 'Fred', 'authn_weight' => 85.3)
);
Это функция сортировки:
private function weightSortImplementation($a, $b){
$aWeight = $a['autn_weight'];
$bWeight = $b['autn_weight'];
if ($aWeight == $bWeight) {
return 0;
}
return ($aWeight < $bWeight) ? 1 : -1;
}
Я проверил, что функция weightSortImplementation
всегда возвращает 0, показывая, что они одинаковы. Итак, почему это все еще переупорядочивает массив?
usort
порядок был обратным. codepad.org/PRFpq8Ug - person Rocket Hazmat   schedule 28.08.2012