2013-03-19 58 views
-2

我得到一个字符串,如0699245221,我想要这个结果06-99-24-52-21,你知道这个最好的解决方案吗? (忘记循环,或其他的,我敢肯定,PHP已经得到了这个 “功能”字符串函数php

感谢的提前

回答

2
$string = '0699245221'; 
$modified_string = wordwrap($string, 2, '-', true); 
1

试试这个:。

$str = '0699245221'; 
echo $res = implode("-",str_split($str, 2)); 

OR

$str = '0699245221'; 
echo $res = chunk_split ($str, 2, '-'); 

二人们有一个问题,它在最后加上-

1

试试这个

<?php 
    $value = '0699245221'; 
    echo $res = implode("-",str_split($value, 2)); 
?> 

输出

06-99-24-52-21 
+1

此输出'06-99-24-52-21-' – tradyblix 2013-03-19 09:35:30

1

有很多方法可以做到这一点。你可以使用这样的事情:

function addDashes($str) { 
    $str = str_split($str, 2); 
    $str = implode("-", $str); 
    return $str; 
} 

或本:

function addDashes($str) { 
    $str = chunk_split($string, 2, "-"); 
    $str = substr($str, 0, -1); 
    return $str; 
} 
+0

什么与downvote?它正如问题所要求的那样工作。 – 2013-03-19 09:41:08

+0

,但是有一些本地函数可以在wordwrap()的一个步骤中完成,这就是为什么他们低估了你的想法xD – aleation 2013-03-19 09:44:33

+0

但是这是为了包装文本,而不是将字符插入到字符串中。 – 2013-03-19 09:50:27

0

这是完美的解决方案尝试,他会给你这样06-99-24-52-21

结果
<?php 
$str = "0699245221"; 
$str1= chunk_split($str,2,"-"); 
$str1=rtrim($str1,"-"); 
echo $str1; 
?>