【クラス・構造体メニュー】> 【構造体の更新】STEP: 3 構造体の整列 (paizaランク C 相当) [難易度: 1662 ±15]
※リンク先へ移動するためには[paiza]へのログインが必要です。
クラスの学級委員である paiza 君は、クラスのみんなに次のような形式でアカウントの情報を送ってもらうよう依頼しました。
名前 年齢 誕生日 出身地
送ってもらったデータを使いやすいように整理したいと思った paiza 君はクラス全員分のデータを次の形式でまとめることにしました。
User{
nickname : 名前
old : 年齢
birth : 誕生日
state : 出身地
}
この情報を扱いやすくするために、年齢が昇順になるようにデータを並び替えることにしました。
クラスメートの情報が与えられるので、並び替えた後のデータを出力してください。
入力値(例)
1
koko 23 04/10 tokyo
出力値(例)
koko 23 04/10 tokyo
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php // Studentというクラス(型)を宣言。クラスの1文字目は大文字 class Student { // プロパティ public $name; public $old; public $birth; public $state; // メソッド function showData(){ } } //クラスStudentのインスタンスを作成 $deta = new Student; $n = trim(fgets(STDIN)); for($i=0; $i<$n; $i++) { list($name, $old, $birth, $state) = explode(" ", trim(fgets(STDIN))); $student[] = array("name"=>$name, "old"=>$old, "birth"=>$birth, "state"=>$state); } array_multisort(array_column($student, "old"), SORT_ASC, $student); //print_r($student); for($i=0; $i<$n; $i++) { printf("%s %d %s %s\n", $student[$i]["name"], $student[$i]["old"], $student[$i]["birth"], $student[$i]["state"]); } ?> |