在变量的每一行前面加上一个字符串


Prepend each line of a variable with a string

如何使用 PHP 将字符串(例如存储在变量中'a' $x添加到多行字符串变量的每一行中?

也可以使用:

echo preg_replace('/^/m', $prefix, $string);

/是分隔符。^与字符串的开头匹配。m使其具有多行。

演示

有很多方法可以实现这一点。

一个是:

$multi_line_var = $x.str_replace("'n", "'n".$x, $multi_line_var);

另一个是:

$multi_line_var = explode("'n", $multi_line_var);
foreach($multi_line_var AS &$single_line_var) {
    $single_line_var = $x.$single_line_var;
}
$multi_line_var = implode("'n", $multi_line_var);

或者作为一个欺骗性的简单在线用户:

$multi_line_var = $x.implode("'n".$x, explode("'n", $multi_line_var));

与第一个相比,第二个是可怕的浪费。它为字符串数组分配内存。它运行每个数组项并对其进行修改。然后将碎片粘合在一起。

但是,如果一个串联不是您对这些文本行所做的唯一更改,则它可能很有用。

由于您的每行要求,我将首先使用 explode 将字符串拆分为数组,然后遍历数组并在每行的开头添加文本,然后使用 implode 将数组转回字符串。只要行数不是很大,这可以是一个合适的解决方案。

代码示例:

$arr = explode("'n", $x);
foreach ($arr as $key => $value) {
    $arr[$key] = 'a' . $arr[$key];
}
$x = implode("'n", $arr);

示例:http://codepad.org/0WpJ41LE