連想配列のキーを、1行目と2行目の変数に置き換える。
foreach:ループの中で配列の要素を直接変更したい場合は、 $value の前に & をつけます。
array_keys()関数で、連想配列の「キー」のみ取り出す
/* 1.連想配列を作って、値が、小さい方のキーが勝者となり、次の配列に格納する。$smaller = []; 2. 同じことをやって、キーを出力する。=> array_keys(); 連想配列のキーを、1行目と2行目の変数に置き換える。 index番号とのずれで、最後に、キーに +1 をしたのを出力すればよい sort を使って、2回戦の参加者を昇順に綺麗に並べ直す。 */ list($a, $b) = explode(' ', trim(fgets(STDIN))); // 1回戦の対戦相手 list($c, $d) = explode(' ', trim(fgets(STDIN))); // 1回戦の対戦相手 $score = []; $score = explode(' ', trim(fgets(STDIN))); // 1回戦のスコア list($x, $y) = explode(' ', trim(fgets(STDIN))); // 2回戦の2人のスコア $smaller = []; // 連想配列のキーを変数、$a~$dに差し替える。 // index番号とのずれで、それぞれ、-1 をする。 if($score[$a-1] < $score[$b-1]) { $smaller[$a-1] = $score[$a-1]; } else { $smaller[$b-1] = $score[$b-1]; } if($score[$c-1] < $score[$d-1]) { $smaller[$c-1] = $score[$c-1]; } else { $smaller[$d-1] = $score[$d-1]; } // 連想配列のキーだけ、取り出す $arrKeys = array_keys($smaller); // index 番号の関係で +1 する foreach ($arrKeys as &$v) { $v++; } // 昇順にすることで、扱いを楽にする。 sort($arrKeys); if ($arrKeys[0] < $arrKeys[1] && $x < $y) { echo $arrKeys[0] . PHP_EOL; echo $arrKeys[1] . PHP_EOL; } else { echo $arrKeys[1] . PHP_EOL; echo $arrKeys[0] . PHP_EOL; }