Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组占用太多内存_Php_Arrays_Memory Management_Multidimensional Array - Fatal编程技术网

PHP数组占用太多内存

PHP数组占用太多内存,php,arrays,memory-management,multidimensional-array,Php,Arrays,Memory Management,Multidimensional Array,我有一个多维数组。阵列本身很好。我的问题是这个脚本占用了大量内存,而且由于我在iBookG4上的MAMP安装上运行这个脚本,我的计算机冻结了。下面是完整的脚本 $query = "SELECT * FROM posts ORDER BY id DESC LIMIT 10"; $result = mysql_query($query); $posts = array(); while($row = mysql_fetch_array($result)){ $posts[

我有一个多维数组。阵列本身很好。我的问题是这个脚本占用了大量内存,而且由于我在iBookG4上的MAMP安装上运行这个脚本,我的计算机冻结了。下面是完整的脚本

$query = "SELECT * FROM posts ORDER BY id DESC LIMIT 10"; 
$result = mysql_query($query);
$posts = array();
while($row = mysql_fetch_array($result)){

            $posts[$row["id"]]['post_id'] = $row["id"];
            $posts[$row["id"]]['post_title'] = $row["title"];
            $posts[$row["id"]]['post_text'] = $row["text"];
            $posts[$row["id"]]['post_tags'] = $row["tags"];
            $posts[$row["id"]]['post_category'] = $row["category"];

foreach ($posts as $post) {
   echo $post["post_id"];
}
是否有一种解决方法仍然可以实现我的目标(将MySQL查询行导出到数组)


-迪伦

这很奇怪,因为你已经设定了10的限制。请注意,在使用
mysql\u-fetch\u-array
函数时指定关联数组eg
$row[“title”]
,请向其添加第二个参数
mysql\u-ASSOC
或改用
mysql\u-fetch\u-ASSOC
函数:

while($row = mysql_fetch_assoc($result)){
   $posts[$row["id"]]['post_id'] = $row["id"];
   $posts[$row["id"]]['post_title'] = $row["title"];
   $posts[$row["id"]]['post_text'] = $row["text"];
   $posts[$row["id"]]['post_tags'] = $row["tags"];
   $posts[$row["id"]]['post_category'] = $row["category"];
}

您可能希望使用
array\u chunk
函数从数组中创建块,并根据需要操作这些块。

如果代码是逐字复制的,直接从代码中复制/粘贴的,我注意到的一件事(除非我看到东西)是while循环中没有结束“}”

干杯,
Alex

谢谢,但它没有完成任务。这不是一条错误消息-页面永远不会加载,httpd进程(MAMP进程)会一直上升到28mb并不断攀升。我必须停止页面加载并强制退出进程。正在使用多少内存?您是否使用测量过?这可能是由于循环后缺少
}
而导致的语法错误的问题,该循环自错误报告关闭后未报告,不是吗?:)是的,那是我的打字错误。在我的密码里。谢谢你的提醒!