我在使用 in_array()
时遇到了一些问题
$list = array(
"files/" => "/system/application/files/_index.php",
"misc/chat/" => "/system/application/misc/chat/_index.php"
);
我有这个 $_GET['f']
,它包含字符串 files/
。
如何在数组中搜索可能的匹配项?
如果在数组中找到该字符串,则应包含该文件
感谢您的帮助:)
最佳答案
其实很简单。您需要做的就是检查是否设置了数组元素。通常使用的语言结构是 isset()
(是的,这很明显)...
if (isset($list[$_GET['f']])) {
}
不需要为此调用函数,isset
更清晰易读(恕我直言)...
请注意,isset
实际上并不是一个函数。这是一种语言结构。这有一些含义:
您不能在函数的返回值上使用
isset
(isset(foo())
不起作用)。它仅适用于一个变量(或变量的组合,例如数组访问或对象访问)。它没有函数调用的开销,所以总是很快。函数调用的总体开销是一个需要担心的微优化,但值得一提的是,如果您处于紧密循环中,它可能会累加起来。
您不能将 isset 作为变量函数调用。这行不通:
$func = 'isset'; $func($var);
关于PHP 数组搜索 - key => string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690301/