paiza Bランクレベルアップメニュー「占い PHP編」final問題 解答例

<?php
    // 自分の得意な言語で
    // Let's チャレンジ!!
    
    $num = trim(fgets(STDIN));
    
    $hoge = array();
    $foo = array();
    
    for ($i = 0; $i < $num; $i++) {
        $s = explode(" ",trim(fgets(STDIN)));
        $hoge += array($s[0]=>$s[1]);
    }
    
    $type_num = trim(fgets(STDIN));
    
    for ($i = 0; $i < $type_num; $i++) {
        $t = explode(" ",trim(fgets(STDIN)));
        $foo += array($t[0]=>$t[1]);
    }

    //print_r($hoge);

    foreach($hoge as $key =>$value){
        foreach($foo as $key2 =>$value2){
            if($value == $key2){
                echo($key." ".$value2."\n");
                break;//探索終わり なぜかここはbreak 2ではない
            }
        }
    }
        

?>

このbreak;をつけないとテスト8あたりで引っかかりました。


これがbreak 2;でないのが自分で不思議です。
foreachを2つ抜けるならbreak 2;な気もしますが・・・。

それにしても数日前に人生初の2重whileをやって、今回は二重foreachです。レベルアップ問題は本当にアップしますね。

あぶらぼうず
驚きのあぶらぼうず
1+