in_array() による多次元配列検索
in_array() 関数は、線形配列内の値の存在の検証に優れています。ただし、多次元配列に関してはその機能が不十分です。この記事では、多次元シナリオにおける in_array() の制限を詳しく調べ、再帰的な解決策を紹介します。
多次元配列での in_array() の制限
$ a = array("Mac", "NT", "Irix", "Linux");<br>if (in_array("Irix", $a)) echo "Irix を理解しました"; // Works<br>
対照的に、以下に示すように in_array() を多次元配列に適用すると、不正確な結果が得られます:
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "Irix を理解しました"; // 失敗<br>
多次元配列検索の再帰的解決策
多次元配列内の値を効果的に検索するには、再帰的アプローチを使用します。必須。次のコード スニペットは、この目的のためのカスタム関数を定義します:
<br>function in_array_r($needle, $haystack, $strict = false) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar: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';
このソリューションにより、多次元配列内の値の効率的かつ正確な検索操作が可能になります。
以上がPHP で多次元配列内の値を効果的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。