問題
解答例
usort()
を使って配列のソートをしました。usort()関数
は、ユーザーが指定した比較関数に基づいて配列をソートします。今回のソートは、以下のルールが適用されます。
・負の整数を返すと、最初の要素が2番目の要素よりも小さいとみなされます。
・正の整数を返すと、最初の要素が2番目の要素よりも大きいとみなされます。
・0 を返すと、最初の要素と2番目の要素は同じとみなされます。
いつものやつ
入力を受け取り、変数と配列に入れてます。
<?php
list($n, $m, $k) =explode(" ",trim(fgets(STDIN)));
for($i = 0; $i < $n; $i++) {
$array[] = explode(" ", trim(fgets(STDIN)));
}
ユーザー定義のソートを作成
function customSort($a, $b) {
global $k;
$k_index = $k-1;
if($a[$k_index] != $b[$k_index]) {
// 配列の値が同じじゃない場合
return $a[$k_index] - $b[$k_index];
}
// k列目が等しい場合
for($i = 0; $i < count($a); $i++) {
if($a[$i] != $b[$i]) {
return $a[$i] - $b[$i];
}
}
return 0;
// 値が同じ場合
}
出力
usort($array, 'customSort');
foreach ($array as $pair) {
echo implode(' ', $pair) . "\n";
}
?>
chatgpt君に助けてもらいました。