![](/img/trans.png)
[英]Workaround for PHP taking up too much memory when using Reflection class in a loop
[英]PHP array taking up too much memory
我有一个多维数组。 数组本身很好。 我的问题是该脚本占用了大量内存,并且由于我是在iBook G4的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查询行导出到数组)?
-迪伦
如果该代码是逐字记录的,直接从您的代码复制/粘贴,那么引起我注意的一件事(除非我看到了东西)是while循环中没有结束的'}'。
干杯,亚历克斯
这很奇怪,因为您已经设置了限制10。 请注意,在使用mysql_fetch_array
函数时,您正在指定关联数组,例如$row["title"]
,向其添加第二个参数MYSQL_ASSOC
或使用mysql_fetch_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_chunk
函数从数组array_chunk
块,并根据需要操作这些分块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.