У меня есть вход, как это: $input="12050301000000000000";
Заменить все строки, за исключением двух индексов
Я пытаюсь использовать preg_replace
изменить каждую вещь в моем входе 0
за исключением двух символов, на которые ссылаются их индексами.
Например, я хочу, чтобы заменить все, кроме первого и второго символов 0.
Я попытался это:
$input="02050301000000000000";
$index1=0;
$index2=1;
$output= preg_replace('/(?!^'.$index1.')/', '0', $input);
Почему не проще: '$ выход = str_repeat ('0', STRLEN ($ вход)); $ output [$ index1] = $ input [$ index1]; $ output [$ index2] = $ input [$ index2]; ', что было бы намного легче читать и понимать, чем regexp. –
Не могу получить более приятный ответ, чем тот, и это тоже в комментарии! –
@MarkBaker Мне нравится ваш ответ, можете ли вы опубликовать его в качестве ответа, чтобы я мог его принять. –