使用 in_array() 搜索多维数组
而 in_array() 函数是检查数组中值是否存在的便捷工具数组,但在处理具有多维结构的数组时它就显得不足了。要克服此限制,请考虑以下事项:
自定义递归函数
您可以使用像这样的递归函数,而不是依赖 in_array() in_array_r:
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 函数,请为其提供 Needle(您要查找的值)、haystack(多维数组)和可选的严格参数(控制严格相等比较)。例如:
$b = array(array("Mac", "NT"), array("Irix", "Linux")); echo in_array_r("Irix", $b) ? 'found' : 'not found';
以上是如何在PHP中高效搜索多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!