Поместите тире между каждым третьим символом
У меня возникла проблема, как поставить тире в каждом третьем символе. Например, я хочу
ABCDEF turn into ABC-DEF
У меня есть этот код:
$string = 'ABCDEF';
echo substr_replace(chunk_split($string,3),'-','3','2');
// the output is ABC-DEF
Однако этот код не работает, если я добавляю больше символов к строковой переменной $, например ABCDEFGHI
. Если я использую вышеуказанный код, выход будет:
ABC-DEF GHI
Ответы
Ответ 1
Вы должны использовать PHP str_split
и implode
.
function hyphenate($str) {
return implode("-", str_split($str, 3));
}
echo hyphenate("ABCDEF"); // prints ABC-DEF
echo hyphenate("ABCDEFGHI"); // prints ABC-DEF-GHI
echo hyphenate("ABCDEFGHIJKL"); // prints ABC-DEF-GHI-JKL
См. http://ideone.com/z7epZ для рабочего примера этого.
Ответ 2
Просто:
join('-', str_split($str, 3))
Ответ 3
Пример установки тире между каждым третьим символом
$string = 'ABCDEFABCDEF';
echo join('-', str_split($string, 4));
echo join('-', str_split($string, 2));