Поместите черту между каждым третьим символом - PullRequest
13 голосов
/ 08 декабря 2011

У меня была проблема с тем, как поставить черту в каждом третьем символе.Например, я хочу

ABCDEF turn into ABC-DEF

У меня есть этот код:

$string = 'ABCDEF';
echo substr_replace(chunk_split($string,3),'-','3','2');
// the output is ABC-DEF

Однако этот код не будет работать, если я добавлю больше символов в переменную $ string, например ABCDEFGHI.Если я использую приведенный выше код, вывод будет:

ABC-DEF GHI

Ответы [ 4 ]

31 голосов
/ 08 декабря 2011

Вам следует использовать функции 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 для рабочего образца этого.

13 голосов
/ 08 декабря 2011

Просто:

join('-', str_split($str, 3))
0 голосов
/ 24 июля 2018

Все не упомянули обертку:

echo wordwrap('ABCDEFGHI', 3, '-', true);
0 голосов
/ 22 сентября 2013

Пример размещения тире между каждым третьим символом

$string = 'ABCDEFABCDEF';
echo join('-', str_split($string, 4));
echo join('-', str_split($string, 2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...