Heim  >  Artikel  >  Backend-Entwicklung  >  在遍历结果集中判断两次循环的值是否都为0

在遍历结果集中判断两次循环的值是否都为0

WBOY
WBOYOriginal
2016-06-23 14:27:251131Durchsuche

就是说   A表有10条数据,字段为phone,select之后   用while遍历,在while里面进行判断,$i的phone值与$i+1的phone值如果都等于0,那么进行相关操作。  这个循环该怎么写

代码已经写到这:

$i=0;while ($row = $db->fetch_array($result)){	$i++;	}


回复讨论(解决方案)

数据比较大,最好也可以考虑下效率问题。

增加一个计数器,判断这个计数器的连续性,是则执行,否则重置

不然就把结果转数组,用foreach对下标操作

增加一个计数器,判断这个计数器的连续性,是则执行,否则重置

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。

$last = array();while ($row = $db->fetch_array($result)){  if($last && $row['phone'] == 0 && $last['phone'] == 0) {    //处理代码  }  $last = $row;}


也可以直接查询
set @last:='';select @last as last, phone, @last:=phone from tbl_name

直接对比或读出后处理


增加一个计数器,判断这个计数器的连续性,是则执行,否则重置

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。
和#4的思路类似,但老徐直接用了缓存数据,比用计数器更简洁了(计数器是缓存下标$i),所以我就不献丑了

$last = array();while ($row = $db->fetch_array($result)){  if($last && $row['phone'] == 0 && $last['phone'] == 0) {    //处理代码  }  $last = $row;}


也可以直接查询
set @last:='';select @last as last, phone, @last:=phone from tbl_name

直接对比或读出后处理



增加一个计数器,判断这个计数器的连续性,是则执行,否则重置

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。
和#4的思路类似,但老徐直接用了缓存数据,比用计数器更简洁了(计数器是缓存下标$i),所以我就不献丑了
非常感谢。

$last = array();while ($row = $db->fetch_array($result)){  if($last && $row['phone'] == 0 && $last['phone'] == 0) {    //处理代码  }  $last = $row;}


也可以直接查询
set @last:='';select @last as last, phone, @last:=phone from tbl_name

直接对比或读出后处理

那如果是 A表有两个字段,phone及value 。 循环判断 $i.phone与$i+1.phone相同,$i.value与$i+1.value的值又都为0   这样语句怎么写?

有一就有二,不过就是多加的判断而已

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn