在PHP中,in_array()
函数用于在一个一维数组中搜索一个值,它不能直接处理多维数组。如果要搜索多维数组中的值,你可以使用 array_search()
函数或者递归地遍历多维数组。
以下是使用 array_search()
函数搜索多维数组的示例:
$multi_array = [
'level1' => [
'level2a' => [
'value' => 'target',
],
'level2b' => [
'value' => 'other',
],
],
'level1b' => [
'level2c' => [
'value' => 'target',
],
],
];
$search_value = 'target';
// 使用 array_search() 搜索多维数组
$result = array_search($search_value, $multi_array);
if ($result !== false) {
echo "找到了值:{$result}";
} else {
echo "没有找到值";
}
使用递归遍历多维数组的示例:
function search_in_multi_array($array, $search_value) {
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = search_in_multi_array($value, $search_value);
if ($result !== false) {
return $result;
}
} else {
if ($value === $search_value) {
return $key . '[' . $value . ']';
}
}
}
return false;
}
$search_value = 'target';
$result = search_in_multi_array($multi_array, $search_value);
if ($result !== false) {
echo "找到了值:{$result}";
} else {
echo "没有找到值";
}
这两个示例都会输出:找到了值:level1[level2a][value]