php分裂大数字(如爆炸)

时间:2011-02-18 02:15:04

标签: php explode

我需要php explode()的功能,但没有分隔符。

例如,将变量“12345”转换为数组,分别保存每个数字。

这可能吗?我已经谷歌搜索但只发现爆炸(),这似乎不起作用。

谢谢!

3 个答案:

答案 0 :(得分:7)

使用php中的任何字符串:

$foo="12345";
echo $foo[0];//1
echo $foo[1];//2
//etc

或(来自手册中的preg_split())页面

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

更好:

$str = 'string';
$chars=str_split($str, 1)
print_r($chars);

preg_split()vs str_split()

的基准
 function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}


$str = '12345';
$time_start = microtime_float();
for ($i = 0; $i <100000; $i++) {
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
//$chars=str_split($str, 1);
}
$time_end = microtime_float();
$time = $time_end - $time_start;

echo "$time seconds\n";

结果:

str_split  =0.69
preg_split =0.9

答案 1 :(得分:4)

如果你真的想创建一个数组,那么使用str_split(),即

echo '<pre>'. print_r(str_split("123456", 1), true) .'</pre>'; 

会导致

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

答案 2 :(得分:1)

您的号码可以转换为字符串,然后像数组一样行动

$i = 2342355; $i=(string)$i;
//or
$i='234523452435234523452452452';

//then

$i[2]==4

//numeration started from 0