我做了一个函数会返回序号的第N位,例如:
1234567891011121314151617
<?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
我怎样才能解决这个问题…或者我怎样才能生成一个函数来处理这些大的数
谢谢
关于内存问题,确实是由于数量太多:
$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;
}
}
基本上,它分配了一个约500000000000项的数组($data
),这相当大。。。
按照其他答案/评论中的建议,将你的数字操作为字符串(或字符数组)将是:更容易、更可读、更快、更少消耗内存、...
我做了一个函数会返回序号的第N位,例如:
1234567891011121314151617
The 5-th digit is 5
The 20-th digit is 1
为什么不:
$number[5];
$number[20];
数字必须是字符串,因此只需使用数组语法访问字符即可。
我在PHP中使用重载,我的PHP代码有什么问题,即使只有8行代码: 上面写着: “致命错误:允许的内存大小134217728字节已用尽(试图分配262144字节)”
我有一个PHP的问题,我只是想尝试调用方法 我得到错误: 致命错误:允许的内存大小为134217728字节耗尽(试图分配1字节)在C:\xampp\htdocs\aa-acc\包括\Produk_Method.php在第13行 我尝试过这个答案:在php中允许内存大小为33554432字节(尝试分配43148176字节) 我仍然得到这个错误: 致命错误:内存不足(分配1881931776)(尝试分
我在PHPExcel中的内存有问题 这是错误消息: 致命错误:允许的内存大小67108864字节耗尽(试图分配78字节)在 /home/***/public_html/系统/PHPExcel/类/PHPExcel/CachedObjectStore/Memory.php行55 这是我的: 我是PHP的新手。请帮帮我,非常感谢。
以下是完整的错误: 致命错误:允许内存大小为134217728字节耗尽(尝试分配131072字节) /sites/apps/seller/www/application/libraries/Excel/PHPExcel/CachedObjectStorage/CacheBase.php行173 这是mu代码: 我使用codeigniter框架和phpexcel库。非常感谢。
当我尝试在wordpress脚本中打开一个仪表板页面时出错 错误消息如下所示: 致命错误:第2685行的/home/admin/domains/filesick.com/public_html/wp-includes/taxonomy.php中允许的内存大小为268435456字节(尝试分配71字节) 我四处询问,他们告诉我必须将内存限制提高到256M以上,所以我将其改为512M,但仍然存在同样的
可能重复: php中允许的内存大小为33554432字节(尝试分配43148176字节) 我在执行代码时遇到以下错误。 尝试了