いくつかの php ソート関数を使用する方法はほとんどありません (他の人が既に提案したように)。これは、この仕事を行う別の簡単な方法です。
関数 sortArrayByKeys()
function sortArrayByKey($keystring, $origarray) {
$res = array();
$keys = explode(',', $keystring);
foreach ($keys as $key) $res[] = $origarray[$key];
return $res;
}
テスト:
$original_array = array('A', 'B', 'C', 'D', 'E', 'F');
$sort_pattern = '5,2,4,1,3,0';
$new_array = sortArrayByKey($sort_pattern, $original_array);
echo "$sort_pattern => " . join(',', $new_array) . "<br />\n";
$sort_pattern = '0,2,4,1,3,5';
$new_array = sortArrayByKey($sort_pattern, $original_array);
echo "$sort_pattern => " . join(',', $new_array) . "<br />\n";
$sort_pattern = '5,4,3,2,1,0';
$new_array = sortArrayByKey($sort_pattern, $original_array);
echo "$sort_pattern => " . join(',', $new_array) . "<br />\n";
$sort_pattern = '0,5,4,2,1,3';
$new_array = sortArrayByKey($sort_pattern, $original_array);
echo "$sort_pattern => " . join(',', $new_array);
出力:
5,2,4,1,3,0 => F,C,E,B,D,A
0,2,4,1,3,5 => A,C,E,B,D,F
5,4,3,2,1,0 => F,E,D,C,B,A
0,5,4,2,1,3 => A,F,E,C,B,D
乾杯 ;)