You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于用户输入的职位关键词从预生成数组中检索匹配数据?

职位检索功能实现方案

你已经完成了文本数据读取到二维数组的逻辑,在此基础上增加检索功能只需要补充关键词匹配逻辑即可,默认你读取的$allData子数组的第一个元素为职位名称字段,可根据你实际的字段顺序修改索引值。

实现步骤如下:

  • 优化原有参数校验逻辑,避免参数不存在时抛出PHP notice报错
  • 对用户传入的职位关键词做预处理,去除首尾空格,默认设置不区分大小写匹配,提升检索体验
  • 遍历已生成的$allData数组,使用字符串匹配函数判断当前条目职位是否包含用户输入的关键词
  • 收集所有匹配成功的条目输出即可

修改后的完整代码如下:

<?php
// 优化原有参数校验逻辑
if (isset($_GET['job_title']) && !empty($_GET['job_title'])) {
    // 处理用户输入的关键词,去除首尾空格
    $job_title = trim($_GET['job_title']);
    echo "检索关键词:" . $job_title . "<br>";
    $filename = __DIR__ . '/jobpost.txt';
    $matchedResult = []; // 存储匹配结果的数组

    if (file_exists($filename)) {
        $allData = array();
        $handle = fopen($filename, "r");
        while (!feof($handle)) {
            $onedata = fgets($handle);
            if ($onedata != "") {
                $data = explode("\t", $onedata);
                $allData[] = $data;
                // 新增匹配逻辑:默认职位为子数组的第0个元素,可根据实际字段顺序修改索引值
                // 使用stripos实现不区分大小写的模糊匹配
                if (isset($data[0]) && stripos($data[0], $job_title) !== false) {
                    $matchedResult[] = $data;
                }
            }
        }
        fclose($handle); // 关闭文件句柄

        // 输出匹配结果
        echo "<h3>匹配到的相关条目:</h3>";
        echo "<pre>";
        if (!empty($matchedResult)) {
            print_r($matchedResult);
        } else {
            echo "未找到匹配的职位信息";
        }
        echo "</pre>";
    } else {
        echo "文件不存在";
    }
} else {
    echo "<p class=\"bg_danger\">请输入职位名称</p>";
}
?>

你可以根据需求调整匹配规则:如果需要精确匹配,把匹配逻辑改成$data[0] == $job_title即可;如果需要区分大小写,把stripos换成strpos即可。

内容的提问来源于stack exchange,提问作者Elham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:57:02