4

PHPを使用して複数行の文字列変数の各行'a'に変数に格納されていると言う文字列を前に追加するにはどうすればよいですか?$x

4

3 に答える 3

16

使用することもできます:

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

区切り文字/です。文字列の先頭に一致します。マルチラインになります。^m

デモ

于 2012-06-28T21:15:29.757 に答える
5

これを達成するには多くの方法があります。

1つは次のとおりです。

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

もう1つは次のとおりです。

$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));

2 番目のものは、最初のものに比べてひどく無駄です。文字列の配列にメモリを割り当てます。各配列項目に対して実行され、変更されます。そして、ピースを接着します。

ただし、これらのテキスト行に対して行っている変更が 1 つの連結だけではない場合に便利です。

于 2012-06-28T21:06:58.017 に答える
3

各行の要件があるため、最初にを使用して文字列を配列に分割しexplode、次に配列をループして各行の先頭にテキストを追加し、次にを使用して配列を文字列に戻しますimplode。行数がそれほど多くない限り、これは適切な解決策になります。

コードサンプル:

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

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

于 2012-06-28T21:14:49.843 に答える