📅  最后修改于: 2023-12-03 15:03:42.852000             🧑  作者: Mango
在PHP中,检查值是否存在于多维数组中是一个常见的需求。有很多方法可以实现这个目标,其中一些比其他方法更有效。
本文将介绍PHP中检查值是否存在于多维数组中的最佳实践。
function search_array($needle, $haystack)
{
$found = false;
array_walk_recursive($haystack, function ($value) use ($needle, &$found) {
if ($needle == $value) {
$found = true;
}
});
return $found;
}
以上代码利用array_walk_recursive函数遍历了多维数组,当找到与指定值相同的元素时,返回true。否则返回false。
function search_array($needle, $haystack)
{
foreach ($haystack as $value) {
if (is_array($value) && search_array($needle, $value)) {
return true;
} elseif ($needle == $value) {
return true;
}
}
return false;
}
以上代码使用递归函数遍历多维数组,当找到与指定值相同的元素时,返回true。否则返回false。
function array_key_exists_recursive($key, $array)
{
if (array_key_exists($key, $array)) {
return true;
}
foreach ($array as $value) {
if (is_array($value) && array_key_exists_recursive($key, $value)) {
return true;
}
}
return false;
}
// 示例用法:
$array = [
'foo' => [
'bar' => [
'baz' => 42,
],
],
];
var_dump(array_key_exists_recursive('baz', $array));
以上代码使用array_key_exists_recursive函数在多维数组中搜索是否存在指定的键。如果找到键,返回true。否则返回false。
以上是在PHP中检查值是否存在于多维数组中的最佳实践。你可以选择最适合你的方法来实现你的需求。在上述方法中,使用array_walk_recursive和递归函数的方法在PHP中是最常见的方法。而在PHP 7中,使用array_key_exists_recursive函数来检查键是否存在于多维数组中也是一个好的选择。