我做了一个函数将返回序列号的第 N 位,例如:
1234567891011121314151617
- 第 5 个数字是 5
- 第 20 位是 1
我的功能是这样的
<?php
function getLength($number) {
$length = 0;
if ($number == 0){
$length = 1;
} else {
$length = (int) log10($number)+1;
}
return $length;
}
?>
<?php
function getDigitNumber($digit){
$number = 10000000000;
$data = array();
for($i=1;$i<=$number;$i++){
if(getLength($i) > 1){
$array = str_split($i,1);
for($n=0;$n<=count($array)-1;$n++){
array_push($data,$array[$n]);
}
}else{
$data[$i] = $i;
}
}
return $data[$digit];
}
?>
当我执行时,我遇到了这样的错误消息“致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 36 字节)”。也许是因为我在 var 中分配了一个很大的数字$number
我该如何解决..或者我怎样才能制作可以处理这些大量数字的功能
谢谢..