キーが空または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