PHP расщепление больших чисел (например, взорваться) - PullRequest
2 голосов
/ 18 февраля 2011

Мне нужна функциональность php explode (), но без разделителей. Например,

, превращая переменную "12345" в массив, держа каждое число отдельно.

этовозможный?я уже гуглил, но нашел только explode (), который, похоже, не работает.

спасибо!

Ответы [ 3 ]

7 голосов
/ 18 февраля 2011

с любой строкой в ​​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 () и 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
4 голосов
/ 18 февраля 2011

Если вы действительно хотите создать массив, используйте str_split (), т.е.

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

приведет к

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
1 голос
/ 18 февраля 2011

Ваш номер можно превратить в строку, а затем вести себя как массив

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

//then

$i[2]==4

//numeration started from 0
...