假设有一个字符串“ foo boo foo boo”,我想用boo替换所有foo,用foo替换booes。预期输出为“ boo foo boo foo”。我得到的是“ foo foo foo foo foo”。如何获得预期的输出而不是当前的输出?
$a = "foo boo foo boo";
echo "$a\n";
$b = str_replace(array("foo", "boo"), array("boo", "foo"), $a);
echo "$b\n";
//expected: "boo foo boo foo"
//outputs "foo foo foo foo"
参考方案
使用strtr
从手册中:
如果给定两个参数,则第二个参数应为array('from'=>'to',...)形式的数组。返回值是一个字符串,其中所有出现的数组键都已被相应的值替换。最长的键将首先尝试。替换子字符串后,将不再搜索其新值。
在这种情况下,如果没有空键,则键和值可以具有任意长度。另外,返回值的长度可能与str的长度不同。但是,当所有键的大小相同时,此功能将是最有效的。
$a = "foo boo foo boo";
echo "$a\n";
$b = strtr($a, array("foo"=>"boo", "boo"=>"foo"));
echo "$b\n";
产出
foo boo foo boo
boo foo boo foo
In Action
PHP Count数组元素 - php嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…
PHP:从函数返回值并直接回显它? - php这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…
PHP:将数据从二维数组复制到一维数组的最快方法 - php我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…
php-printf和sprintf具有不同的输出 - php我编写了以下微型php程序来测试printf和sprintf:<?php $str_1 = printf("%x%x%x", 65, 127, 245); $str_2 = sprintf("%x%x%x", 65, 127, 245); echo $str_1 . "\n"; echo $s…
PHP-解析当前URL - php在以下两种情况下,我都需要解析当前网址:http://mydomain.com/abc/ http://www.mydomain.com/abc/ 我可以获得“ abc”的返回值(或该位置的任何文本)。我怎样才能做到这一点? 参考方案 您可以使用parse_url();$url = 'http://www.mydomain.com/abc/…