在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]