繁体   English   中英

PHP阵列占用过多内存

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM