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中有更好的方法或功能吗?
我搜索互联网,我发现sprintf和number_format,但我不知道我怎么可以使用这个功能对于这种格式!
我会用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)