私は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を返し、同じであることを示していることを確認しました。では、なぜこれがまだ配列を並べ替えているのですか?