【Bランクレベルアップメニュー】> 【文字と整数の組のソート2】STEP: 2 重複の判定 (paizaランク D 相当) [難易度: 1245 ±7]
※リンク先へ移動するためには[paiza]へのログインが必要です。
指定された配列(リスト)の定義の中で、同じ値が存在した場合はtrueを、そうでない場合はfalseを出力してください。
HND, NRT, KIX, NGO, NGO
を要素に持つ配列(リスト)をプログラムで定義し、使用すること。
入力値(例)
なし
出力値(例)
配列(リスト)の要素に重複があればtrueを、重複がなかったらfalseを出力する。
最後は改行し、余計な文字、空行を含んではいけません。
解答例
1 2 3 4 5 6 7 8 |
<?php $list = ["HND", "NRT", "KIX", "NGO", "NGO"]; $count = array_count_values($list); $max = max($count); echo ($max > 1) ? "true" : "false"; ?> |
解説
配列の値の重複をチェックする方法ですが、値の出現回数を数えるarray_count_valuse()関数を使うのが一番簡単だと思いました。
array_count_values( ) 関数は値をキーにして出現回数を値にした配列を作ります。作成された配列に2以上の値があれば重複していることになります。
この問題の場合は、
1 |
$count = array_count_values($list); |
とすることで、$countという配列の中身は、
Array
(
[HND] => 1
[NRT] => 1
[KIX] => 1
[NGO] => 2
)
となります。
なので、$countのmaxが1以上の場合は重複していると考えてtrueを出力します。