我正在使用 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 表明它们是相同的。那么为什么这仍在重新排序数组呢?