多次元配列における in_array() の動作の詳細な分析
1 次元配列の単純な機能とは異なり、in_array()多次元の対応物を扱う場合、関数は不十分になります。言い換えれば、多次元配列の複雑な構造内に値が存在するかどうかを効果的にチェックすることができません。
多次元配列の代替アプローチ
in_array( に依存する代わりに) )、再帰関数を使用して多次元配列を走査し、必要なチェックを実行することを検討してください。このような関数の 1 つは次のように定義できます。
function in_array_r($needle, $haystack, $strict = false) { foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) { return true; } } return false; }
カスタム関数の使用法
in_array_r() 関数を利用するには、ターゲット値を指定するだけです。 、多次元配列、およびオプションで厳密な等価 (===) を行うべきかどうかを示すフラグ
使用方法の例を次に示します:
$b = array(array("Mac", "NT"), array("Irix", "Linux")); echo in_array_r("Irix", $b) ? 'found' : 'not found';
このコードは、値 'Irix' が多次元配列 $b 内に存在するため、'found' を出力します。
結論
in_array() は依然として価値のあるものである1 次元配列用のツールであるため、多次元構造を扱うときはその制限を認識することが重要です。カスタム関数 in_array_r() を利用することで、機能を拡張し、複雑な多次元構造内の値の存在を効果的にチェックできます。
以上がPHP で多次元配列内の値の存在を効果的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。