在字符串php中交换两个单词 - php

假设有一个字符串“ 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/…