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

如何使用关联数组并与索引数组匹配?含机场代码映射及文件格式问题

解决你的两个代码问题

1. 关联城市名与机场代码的匹配问题

其实核心是构建一个城市名到机场代码的映射表,这样你就能通过菜单里的城市名直接拿到对应的机场代码了。举几个常见场景的实现方式:

方式一:手动构建关联数组(字典)

如果你的城市和机场对应关系是固定的,直接写一个键值对数组:

// PHP 示例
$cityAirportMap = [
    "Atlanta" => "ATL",
    "New York" => "JFK",
    "Los Angeles" => "LAX"
    // 其他城市继续补充
];

// 当用户选择菜单里的城市名(比如$selectedCity = "Atlanta")
$matchedAirportCode = $cityAirportMap[$selectedCity];
// 现在$matchedAirportCode就是ATL,可以拿去和航空公司文件匹配啦
# Python 示例
city_airport_map = {
    "Atlanta": "ATL",
    "New York": "JFK",
    "Los Angeles": "LAX"
}

selected_city = "Atlanta"
matched_airport_code = city_airport_map[selected_city]

方式二:从文件加载映射关系

如果城市和机场的对应关系存在某个配置文件里(比如每行是城市名\t机场代码),可以先把文件内容读入关联数组:

# Bash 示例,先把文件转成关联数组
declare -A cityAirportMap
while IFS=$'\t' read -r city code; do
    cityAirportMap["$city"]="$code"
done < city_airport_list.txt

# 之后用选中的城市名取代码:${cityAirportMap["Atlanta"]}

这样不管菜单显示的是城市名,你都能快速拿到对应的机场代码,和航空公司文件里的代码关联上啦。

2. 清理航空公司文件里的多余制表符

多余制表符(连续多个制表符)可以用文本处理工具或者代码里的正则替换来解决:

命令行快速处理

用sed或者awk批量替换文件里的连续制表符为单个:

# 替换所有连续制表符为单个,输出到新文件
sed 's/\t\+/\t/g' airlines.txt > cleaned_airlines.txt

# 如果是制表符和空格混合的情况,统一换成单个制表符
sed 's/[ \t]\+/\t/g' airlines.txt > cleaned_airlines.txt

代码里处理(以PHP为例)

读取文件时逐行清理:

$file = fopen("airlines.txt", "r");
$cleanFile = fopen("cleaned_airlines.txt", "w");

while (!feof($file)) {
    $line = fgets($file);
    // 把连续的制表符替换成单个
    $cleanLine = preg_replace('/\t+/', "\t", $line);
    fwrite($cleanFile, $cleanLine);
}

fclose($file);
fclose($cleanFile);

这样处理后,文件里的列分隔就统一成单个制表符,后续读取匹配的时候就不会出问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:53:06