Есть ли в PHP функция, которая принимает строку, число (i) и символ (x), а затем заменяет символ в позиции (i) на (x)?
i
x
Если нет, может ли кто-нибудь помочь мне в его реализации?
$str = 'bar'; $str[1] = 'A'; echo $str; // prints bAr
или вы можете использовать библиотечную функцию substr_replace как:
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 - преобразовать строку в массив