首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strtr第一步停止PHP

strtr第一步停止PHP
EN

Stack Overflow用户
提问于 2022-07-14 02:51:54
回答 1查看 27关注 0票数 0

我为我的例子做了这个简短的代码。真正的要大得多。我需要的是这个strtr采取第一次出现和停止,因为性能的原因,因为真正的一个更大。

目前的结果是"La Libertad2“,它应该是”拉利伯塔德“,并停止,因为它找到了比赛,而不是尝试其余的选项。

这将减轻服务器上的一些负载。

如果有其他方法可以做到的话,那是值得欢迎的。

代码语言:javascript
复制
$citygen = "Lalibertad";
$transformarciudades = array("Sanmartin" => "San Martín", "Lalibertad" => "La Libertad", "Lalibertad" => "La Libertad2");
$citygen = strtr($citygen,$transformarciudades);
echo $citygen; //result La Libertad2
EN

回答 1

Stack Overflow用户

发布于 2022-07-14 03:11:00

这里有一个想法,不是使用strtr,而是在替换上循环,检查是否存在匹配字符串,如果找到,就替换它,然后从循环中分离出来。

代码语言:javascript
复制
<?php

$citygen = "Once in Lalibertad, always in Lalibertad";
$transformarciudades = array("Sanmartin" => "San Martín", "Lalibertad" => "La Libertad");

foreach($transformarciudades as $t => $v) {
    if (($p = strpos($citygen, $t)) !== false) {
        $citygen = substr($citygen, 0, $p) . $v . substr($citygen, $p + strlen($t));
        break;
    }
}

echo $citygen; // Once in La Libertad, always in Lalibertad

我不确定这是否正是您所追求的,但是您可以修改算法以复制strtr,而无需继续搜索匹配项。

在循环使用$transformarciudades之前,您可能需要以其他方式对它进行排序,但这应该有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72974668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档