なかなかの難しさ。
array_multisort 関数というのを初めて使いました。

<?php
// 自分の得意な言語で
// Let's チャレンジ!!
/*1 行目には人々の数を表す整数 N が与えられ、
2 行目から (N + 1) 行目には、
人々が持っている金の量 g_i と銀の量 s_i がそれぞれ半角スペース区切りで N 行与えられます (1 ≤ i ≤ N)。
*/
$num = trim(fgets(STDIN));
for ($i = 0; $i < $num; $i++) {
$s = explode(" ", trim(fgets(STDIN)));
$people[] = array("gold"=>$s[0],"silver"=>$s[1]);
}
//print_r($people);
// 列方向の配列を得る
foreach ($people as $key => $row) {
$gold[$key] = $row['gold'];
$silver[$key] = $row['silver'];
}
// データを silver の降順、gold の降順にソートする。
// $people を最後のパラメータとして渡し、同じキーでソートする。
array_multisort($silver, SORT_DESC, $gold, SORT_DESC, $people);
//print_r($people);
//出力
for ($i = 0; $i < $num; $i++) {
echo($people[$i]["gold"]." ".$people[$i]["silver"]."\n");
}
?>
array_multisort 関数の参考元
http://yantona.jugem.jp/?eid=334
paiza Cランクレベルアップメニュー php編
https://paiza.jp/works/mondai/c_rank_level_up_problems/problem_index?language_uid=php
1+