我需要php explode()的功能,但没有分隔符。
例如,将变量“12345”转换为数组,分别保存每个数字。 这可能吗?我已经谷歌搜索但只发现爆炸(),这似乎不起作用。谢谢!
答案 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