PHP数组占用太多内存
我有一个多维数组。阵列本身很好。我的问题是这个脚本占用了大量内存,而且由于我在iBookG4上的MAMP安装上运行这个脚本,我的计算机冻结了。下面是完整的脚本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[
$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并不断攀升。我必须停止页面加载并强制退出进程。正在使用多少内存?您是否使用测量过?这可能是由于循环后缺少
}
而导致的语法错误的问题,该循环自错误报告关闭后未报告,不是吗?:)是的,那是我的打字错误。在我的密码里。谢谢你的提醒!