问一个基础的问题关于while

世纪猛男 2017-04-19 06:53:21
想请问,
	$sql="select * from member";
$res=mysql_query($sql);
while($arr=mysql_fetch_assoc($res)){
$data[]=$arr;
//echo $arr['username'];
}

在这个代码中为什么要加上
$data[]=$arr
啊? 不加的话是一维数组不是也可以直接用吗?为什么要变成二维数组再用 foreach遍历啊?一直搞不明白,希望各位能指点一下,谢谢。
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
世纪猛男 2017-04-19
  • 打赏
  • 举报
回复
引用 4 楼 oZhangYanHe 的回复:
是有利于代码维护,并没提高性能,反而降低了,多了一次循环
谢谢您的回答,多一次没必要的循环确实会降低性能。
世纪猛男 2017-04-19
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
不可以 如果之后再用 foreach 循环处理的话,就是多此一举了
原来是这样,我看好几个视频都是先用while循环出来后,再放到 $data[]里,最后再用 foreach 在表格里进行循环,比如:在comm.php里有
function getimg($product_id,$result_type=MYSQL_ASSOC){
	$sql="select i.path from img i where pid={$product_id}";
	$result = mysql_query($sql);
	while(@$row=mysql_fetch_array($result,$result_type)){
		$rows[]=$row;
	}
	return $rows;
}
在index.php里有
	                            <li class="span3">
                            	<div class="offer">
                                	<figure>
									<?php  
									$getimg=getimg($place['id']);
									foreach($getimg as $img):
									?>
                                	<a href="place_detail.php?id=<?php echo $place['id']; ?>"> <img src="Images/place/<?php echo $img['name'];?>" style="width:270px;height:167px;" alt="Offer Image"> </a>
									<?php endforeach; ?>	
                                    </figure>
                                </div>
                            </li>
		
这里的foreach是为了循环<figure>对吗?在这里用while也可以吧?不好意思,初学者,还望指教,谢谢您。
small虾米 2017-04-19
  • 打赏
  • 举报
回复
是有利于代码维护,并没提高性能,反而降低了,多了一次循环
xuzuning 2017-04-19
  • 打赏
  • 举报
回复
不可以 如果之后再用 foreach 循环处理的话,就是多此一举了
世纪猛男 2017-04-19
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
$data[]=$arr; 的目的是为了缓存查询结果到数组 通常是为了给模板引擎提供数据 你当然可以边读边处理
感谢回答,我能不能理解为 $data[]=$arr 写有利于优化,在一些大型网站会更快一点?
xuzuning 2017-04-19
  • 打赏
  • 举报
回复
$data[]=$arr; 的目的是为了缓存查询结果到数组 通常是为了给模板引擎提供数据 你当然可以边读边处理

21,880

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧