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