このメソッドは、事前に定義されたキーの順序を使用して配列をソートしますuksort
$desiredIndexOrder = array(4 => 1, 0 => 2, 1 => 3, 2 => 4, 3 => 5);
uksort($inputArray, function($a, $b) use ($desiredIndexOrder) {
return $desiredIndexOrder[$a] > $desiredIndexOrder[$b] ? -1 : 1;
});
$desiredIndexOrder
配列がindex => desired sort position
フォーマットされていることに注意してください。配列をその形式にしたくない場合は、これを使用して構築することができます。
$desiredIndexOrder = array();
foreach ($desiredKeyOrder as $position=>$key) {
$desiredIndexOrder[$key] = $position + 1;
}
キー$desiredKeyOrder
の配列の順序は次のとおりです。array(4, 0, 1, 2, 3)