如何用" - "字符拆分字符?

Maj*_*Afy 0 php split function

我用php生成了一个序列号,这个序列号的长度是16个字符,我想用4个字符用破折号( - )分割这个序列号,就像这个格式xxxx-xxxx-xxxx-xxxx所以我写了这个php码:

for ($d=0; $d<=3; $d++){
     $tmp .= ($tmp ? "-" : null).substr($serial,$d,4);
}
Run Code Online (Sandbox Code Playgroud)

所以这个循环将返回一个xxxx-xxxx-xxxx-xxxx格式的序列号,

我想知道在php中有更好的方法或功能吗?

我搜索互联网,我发现sprintfnumber_format,但我不知道我怎么可以使用这个功能对于这种格式!

nic*_*ckb 7

我会用str_split()implode():

$result = implode( '-', str_split( $serial, 4));
Run Code Online (Sandbox Code Playgroud)

str_split()将字符串分解为数组,其中每个元素有4个字符.然后,implode()用破折号将这些数组拼接在一起.

所以,如果我们生成一个随机$serial的:

$serial = substr(md5(uniqid(rand(), true)), 0, 16);
Run Code Online (Sandbox Code Playgroud)

我们得到的输出类似于:

59e6-997f-8446-80a2 
Run Code Online (Sandbox Code Playgroud)