Есть ли функция в PHP, которая принимает строку, число ( i
) и символ ( x
), а затем заменяет символ в позиции ( i
) на ( x
)?
Если нет, может кто-нибудь помочь мне в его реализации?
$str = 'bar'; $str[1] = 'A'; echo $str; // prints bAr
или вы можете использовать библиотечную функцию substr_replace
как:
$str = substr_replace($str,$char,$pos,1);
Я поразился, почему никто не помнит о substr_replace ()
substr_replace($str, $x, $i, 1);
Codaddict правильный , но если вы хотите функцию, вы можете попробовать …
function updateChar($str, $char, $offset) { if ( ! isset($str[$offset])) { return FALSE; } $str[$offset] = $char; return $str; }
Оно работает!
function replace_char($string, $position, $newchar) { if(strlen($string) <= $position) { return $string; } $string[$position] = $newchar; return $string; }
Безопасно обрабатывать строки как массивы в PHP, если вы не пытаетесь изменить символы после окончания строки. См. Руководство по строкам :
implode(':', str_split('1300', 2));
возвращает:
13:00
Также очень хорошо для некоторых номеров кредитных карт, таких как Visa:
implode(' ', str_split('4900000000000000', 4));
возвращает:
4900 0000 0000 0000
str_split – Преобразование строки в массив