在每三个字符之间加上破折号

sof*_*kid 14 php string replace substr

关于如何在每个第3个角色中添加破折号我遇到了问题.例如,我想要

ABCDEF turn into ABC-DEF
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

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

但是,如果我向$ string变量添加更多字符,则此代码不起作用ABCDEFGHI.如果我使用上面的代码,输出将是:

ABC-DEF GHI
Run Code Online (Sandbox Code Playgroud)

Jon*_*uis 32

你应该使用PHP str_splitimplode函数.

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
Run Code Online (Sandbox Code Playgroud)

有关此工作示例,请参见http://ideone.com/z7epZ.


dec*_*eze 13

只是:

join('-', str_split($str, 3))
Run Code Online (Sandbox Code Playgroud)