在PHP中,in_array()
函數(shù)用于在一個(gè)一維數(shù)組中搜索一個(gè)值,它不能直接處理多維數(shù)組。如果要搜索多維數(shù)組中的值,你可以使用 array_search()
函數(shù)或者遞歸地遍歷多維數(shù)組。
以下是使用 array_search()
函數(shù)搜索多維數(shù)組的示例:
$multi_array = [
'level1' => [
'level2a' => [
'value' => 'target',
],
'level2b' => [
'value' => 'other',
],
],
'level1b' => [
'level2c' => [
'value' => 'target',
],
],
];
$search_value = 'target';
// 使用 array_search() 搜索多維數(shù)組
$result = array_search($search_value, $multi_array);
if ($result !== false) {
echo "找到了值:{$result}";
} else {
echo "沒有找到值";
}
使用遞歸遍歷多維數(shù)組的示例:
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 "沒有找到值";
}
這兩個(gè)示例都會(huì)輸出:找到了值:level1[level2a][value]