PHP字符映射转数字后如何按对应映射值实现逗号分隔格式化输出
问题解决方法
你的原有代码问题在于str_replace会直接全局替换整个字符串的所有匹配字符,替换完成后所有映射值直接拼接为长串,无法拆分出单个字符对应的映射结果,你可以按以下逻辑修改:
修改后的完整代码
// 修正原有语法错误:input变量前缺少$符号 $input = "JHON"; $remap = [ "a" => '1', "A" => '1', "b" => '2', "B" => '2', "c" => '3', "C" => '3', "J" => '100', "H" => '10', "O" => '90', "N" => '200', ]; // 1. 将输入字符串拆分为单个字符的数组 $chars = str_split($input); // 2. 遍历每个字符,查询映射表收集对应值 $mapResult = []; foreach ($chars as $char) { // 存在映射则取映射值,不存在则保留原字符(可按需调整逻辑) $mapResult[] = $remap[$char] ?? $char; } // 3. 用逗号拼接结果,前后包裹括号输出 $output = '(' . implode(',', $mapResult) . ')'; echo $output;
输出结果
(100,10,90,200)
内容的提问来源于stack exchange,提问作者qaiserjutt
相关产品推荐
相关产品推荐

