我有一个需求,一串未知长度的数字,需要根据要求组合。举例:
1、把一串未知长度的数字按要求取出,要求:如果不是5或0就取两位,如果碰倒5或者0就多取一位,依次类推;
2、数字:156008 ,结果:156、6008;
3、数字:18655680903,结果18、86、6556、68、809、903;还请不吝赐教!谢谢!
1、把一串未知长度的数字按要求取出,要求:如果不是5或0就取两位,如果碰倒5或者0就多取一位,依次类推;
2、数字:156008 ,结果:156、6008;
3、数字:18655680903,结果18、86、6556、68、809、903;还请不吝赐教!谢谢!
/**
*
* 我有一个需求,一串未知长度的数字,需要根据要求组合。
*
* 举例:
* 1、把一串未知长度的数字按要求取出,要求:如果不是5或0就取两位,如果碰倒5或者0就多取一位,依次类推;
* 2、数字:156008 ,结果:156、6008;
* 3、数字:18655680903,结果18、86、6556、68、809、903;
*/
function demo1($str)
{
$data = []; while (true) {
// 当字符串长度等于2 直接退出循环
if (strlen($str) < 2) {
break;
} // 取最后
if (strlen($str) == 2) {
$data[] = $str;
break;
} // 获取第二位
// 如果不是5或0就取2位,如果碰倒5或者0,就+1
$l = 2; $lenth = strlen($str); // 字符串总长度 for ($i = 0; $i < $lenth; $i++) {
$k = (int)$str[$i + 1];
if ($k == 5 || $k == 0) {
$l++;
continue;
} else {
break;
}
}
$data[] = substr($str, 0, $l); $str = substr($str, $l - 1); } return $data;
}$str = "156008";
$res = demo1($str);
var_dump($res);$str = "18655680903";
$res = demo1($str);
var_dump($res);