0

キーが空またはnullの場合はカウントされないという例外を除いて、一致する値を持つキーに応じて値を返す単純な関数を作成しました。私のコードは以下です。

function getFontData(){

    $font = [];
    $font['Font'] = 'Arial';
    $font['Font2'] = 'Arial';
    $font['Font3'] = 'Arial';

    return $font;

}


function compareFonts(){

    $compare = 0;


    $font = getFontData();



   if (!empty($font['Font']) && $font['Font'] === $font['Font2']) {
        $compare = 1;
    } elseif (!empty($font['Font']) && $font['Font'] === $font['Font3']) {
        $compare = 2;
    } elseif (!empty($font['Font2']) && $font['Font2'] === $font['Font3']) {
        $compare = 3;

    }elseif (!empty($font['Font']) && $font['Font'] === $font['Font2'] && $font['Font2'] === $font['Font3']) {
        $compare = 4;
    };

    return $compare;

}

$matches = compareFonts();

var_dump($matches);

私が抱えている問題は、関数が 3 つの同一の配列キーを認識するように記述したコードが、if ステートメントで実行されないように見えることです。この例の出力は 1 です。これは、'font' と 'font2' の両方が一致するため、コードがさらに先に進む必要がないため、本質的に true になる最初の if ステートメントをコードが返していることを示しています。

これを行うためのより良い方法があるか、私のアプローチが完全に間違っていると思います。すべての提案を歓迎します。

よろしく

w9914420

4

2 に答える 2