PHP 数组搜索 - key => string

标签 php arrays

我在使用 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 实际上并不是一个函数。这是一种语言结构。这有一些含义:

  1. 您不能在函数的返回值上使用 isset(isset(foo()) 不起作用)。它仅适用于一个变量(或变量的组合,例如数组访问或对象访问)。

  2. 它没有函数调用的开销,所以总是很快。函数调用的总体开销是一个需要担心的微优化,但值得一提的是,如果您处于紧密循环中,它可能会累加起来。

  3. 您不能将 isset 作为变量函数调用。这行不通:

    $func = 'isset';
    $func($var);
    

关于PHP 数组搜索 - key => string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690301/

相关文章:

JavaScript "or"- PHP 中的功能

php - 正则表达式将文本替换为标签 html 以字符开头

PHP:在特定日期自动更新数据库字段,没有通过 cronjob 的脚本

java - 初始化的对象数组仍然出现空指针异常?

c - c中的qsort问题

c - 如何检查数组中的数字是否相等?

php - 在 nginx 中运行 PHP 的虚拟目录

php - PHP中这两个比较有什么区别?

ios - UIPickerView 在 vi​​ewWillAppear if 语句中不会改变颜色

c++ - 指向对象数组的指针作为成员覆盖内存