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

PHP中能否通过硬编码对应关系转换指定字符串?如何实现?

在PHP中实现字符串到数值的映射转换

当然可以实现这个需求!咱们只需要先把给定的字符串与数值的对应关系硬编码成映射表,再通过PHP的字符串/数组处理函数完成转换就行。下面给你两种简单实用的实现方式:

方法一:数组映射 + 拆分-替换-拼接

这种方法逻辑清晰,适合理解和扩展,步骤如下:

  1. 定义一个关联数组,把每个目标字符串作为键,对应的数值作为值;
  2. 将输入的逗号分隔字符串拆分成单个元素的数组;
  3. 遍历数组,用映射表中的数值替换对应的字符串;
  4. 把替换后的数组重新拼接成逗号分隔的字符串。

代码示例:

// 硬编码映射关系
$mapping = [
    'AZERTY' => 10,
    'QSDFGH' => 20,
    'WXCVBN' => 8,
    'UIOP' => 47
];

// 输入字符串
$input = 'AZERTY,QSDFGH,WXCVBN,UIOP';

// 拆分字符串为数组
$parts = explode(',', $input);

// 替换每个元素为对应数值,用??处理不存在的键避免报错
$convertedParts = array_map(function($part) use ($mapping) {
    return $mapping[$part] ?? $part;
}, $parts);

// 重新拼接成结果字符串
$result = implode(',', $convertedParts);

echo $result; // 输出:10,20,8,47

方法二:使用strtr()函数直接替换

PHP的strtr()函数可以直接基于关联数组对字符串进行批量替换,代码更简洁,不需要手动拆分和拼接:

// 硬编码映射关系(注意值用字符串类型,保证替换后格式正确)
$mapping = [
    'AZERTY' => '10',
    'QSDFGH' => '20',
    'WXCVBN' => '8',
    'UIOP' => '47'
];

$input = 'AZERTY,QSDFGH,WXCVBN,UIOP';
$result = strtr($input, $mapping);

echo $result; // 输出:10,20,8,47

strtr()会自动在输入字符串中匹配并替换所有符合的键,操作起来非常高效。如果后续需要添加更多映射关系,只需要更新$mapping数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:44:40