我有一个字符串形式:
hello_world
需要使用以下格式的字符串:
world_hello
我知道我可能需要使用str_replace
函数,但是如何准确使用它呢?也许有更好的方法?
使用preg_replace
:
$input = "hello_world";
$output = preg_replace("/^(.*?)_(.*)$/", "$2_$1", $input);
echo $output;
此方法在两个单独的组中捕获下划线之前和之后的术语,然后通过反转其顺序来构建输出。打印:
world_hello
这里是另一种使用explode
来生成包含输入的两个部分的数组的方法:
$input = "hello_world";
$parts = explode("_", $input);
$output = $parts[1] . "_" . $parts[0];
echo $output;
如果您在这里搜索string swap
,您将找到答案swap two words in a string php:
// given a string with words concatenated by "_"
$a = "hello_world";
// chaining: explode + reverse + implode
// using "_" as delimiter to split words by
$reversed_a = implode('_', array_reverse(explode('_', $a)));
// gives swapped words: "world_hello"
var_dump($reversed_a);
在Online PHP editor中尝试。
不使用特定单词搜索,也不限于多个单词。使用的单个参数是分隔符_
至检测字边界。因此它将颠倒与特定字符粘在一起的任意数量的单词。
使用的功能: