2011-02-18 75 views
2

我需要php爆炸()的功能,但沒有分隔符。例如,將變量「12345」變成一個數組,分別保存每個數字。PHP分裂大數字(如爆炸)

這是可能的嗎?我已經使用Google搜索,但只能找到爆炸(),這似乎並不奏效。

謝謝!

回答

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 
+0

哦,王牌!我實際上現在感覺有點愚蠢:)謝謝! – 2011-02-18 02:24:34

4

如果你真的想創建一個數組,然後使用str_split(),即

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

會導致

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

您的電話號碼可以變成弦,然後像陣列一樣行動

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

//then 

$i[2]==4 

//numeration started from 0