是的,您可以自定义 PHP in_array
函数的比较规则。默认情况下,in_array
函数使用严格相等(===
)比较两个值。要自定义比较规则,您可以提供一个回调函数作为第二个参数。
以下是一个示例,展示了如何自定义 in_array
的比较规则,使其不区分大小写:
function caseInsensitiveInArray($value, $array) {
foreach ($array as $item) {
if (strtolower($item) === strtolower($value)) {
return true;
}
}
return false;
}
$array = ['Apple', 'banana', 'Orange'];
$value = 'apple';
if (caseInsensitiveInArray($value, $array)) {
echo $value . ' found in the array.';
} else {
echo $value . ' not found in the array.';
}
在这个示例中,我们创建了一个名为 caseInsensitiveInArray
的自定义函数,它接受一个值和一个数组作为参数。然后,我们使用 strtolower
函数将数组中的每个元素和值转换为小写,以便在不区分大小写的情况下进行比较。如果找到匹配项,函数返回 true
,否则返回 false
。
您可以根据需要修改此回调函数以实现自定义的比较规则。