php中的循环遍历 foreach list each

foreach语句遍历数组
foreach语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给变量value(也可以是其它变量),数组指针会逐一的移动。

代码示例:

foreach($array as $value){  //$array要遍历的数组,$value为指针指向数组当前的值,as起到赋值的作用
  code to executed;
}

foreach语句也可以获得数组的键名,如下: 

代码示例:

foreach($array as $key => $value){
  echo $key "-" $value. "<br />";
}

echo()函数
each()的作用是将数组当前元素的键值对拆成一个新数组,并把下一个元素作为当前元素。比如Array(...,‘Robert‘=>‘Bob‘,...)中的‘Robert‘=>‘Bob‘键值对,拆成Array([1]=>‘Bob‘,[value]=>‘Bob‘,[0]=>‘Robert‘,[key]=>‘Robert‘)数组,拆成两套(共四个键值对)返回,0和1的序号对,key和value的名-值对,使用其中一套就可以了。

例:

代码示例:

<?Php
$prices=Array(‘Tries‘ => 100, ‘Oil‘ => 10, ‘Spank Plugs‘ => 4);
while($elements = each($prices)){
  echo $elements[‘key‘];  //echo $elements[0];
  echo " - ";
  echo $elements[‘value‘];   //echo $element[1];
  echo "<br />";
}

输出结果:
Tires-100
Oil-10
Spank Plugs-4

list()函数遍历数组
list()函数可以用来将一个数组分解为一系列的值。list()常与each()一起使用。但是list()也可以不与each()一起使用,例如:list($key, $value) = explode()(":", $v);
list($key, $value) = each($array);   //$key,$value可以任意命名变量名
该句是将each返回的数组当前的0,1位置的元素赋值给$key,$value变量。
例子:

代码示例:

<?php
$prices=Array(‘Tries‘ => 100, ‘Oil‘ => 10, ‘Spank Plugs‘ => 4);
while(list($product, $prices) = each($prices);){
  echo $product "-" $prices;
  echo "<br />";
}

输出结果:
Tires-100
Oil-10
Spank Plugs-4

另一种实现方法:

代码示例:

<?php
$prices=Array(‘Tries‘ => 100, ‘Oil‘ => 10, ‘Spank Plugs‘ => 4);
list($product, $price) = $each($prices);
echo "$product - $price";  //输出第一个数组
$next = $next($prices);   // 指针后移
echo $next;

使用while、each与list函数组合遍历二维数组的方法

<?php
$contact=array(
    ‘gao‘=>array(‘ID‘=>1,‘name‘=>‘高某‘,‘company‘=>‘A公司‘,‘addr‘=>‘北京市‘,‘phonenumber‘=>‘(010)98765432‘,‘email‘=>‘[email protected]‘),
        ‘li‘=>array(‘ID‘=>2,‘name‘=>‘李某‘,‘company‘=>‘B公司‘,‘addr‘=>‘上海市‘,‘phonenumber‘=>‘(021)98765432‘,‘email‘=>‘[email protected]‘),
    ‘ma‘=>array(‘ID‘=>3,‘name‘=>‘马某‘,‘company‘=>‘C公司‘,‘addr‘=>‘重庆市‘,‘phonenumber‘=>‘(023)98765432‘,‘email‘=>‘[email protected]‘),
    ‘fan‘=>array(‘ID‘=>4,‘name‘=>‘范某‘,‘company‘=>‘D公司‘,‘addr‘=>‘天津市‘,‘phonenumber‘=>‘(022)98765432‘,‘email‘=>‘[email protected]‘)
);  

while(list($key,$value)=each($contact)){
    while(list($name,$info)=each($value)){
             echo $name.‘:‘.$info.‘<br>‘;
    }
    echo "------------------------------------<br>";
}
?>  

php中使用while、each与list函数组合遍历二维数组的效果:

list与mysql_fetch_row():

mysql_fetch_row():从结果集中取得一行作为枚举数组.

数据表字段:id,country,animal,cname

 echo ‘<table cellpadding="10" border="1">‘;

    echo ‘<tr><th>字段1</th><th>字段2</th><th>字段3</th><th>字段4</th></tr>‘;
     while(list($id,$country,$animal,$cname)=mysql_fetch_row($result)){
        echo "<tr>";
        echo "<td>".$id."</td>";
        echo "<td>".$country."</td>";
        echo "<td>".$animal."</td>";
        echo "<td>".$cname."</td>";
        echo "</tr>";
     }
     echo "</table>";
  }

 参考:http://blog.csdn.net/maminyao/article/details/7569079

http://www.169it.com/blog_article/1443995156.html

时间: 2024-10-12 06:00:47

php中的循环遍历 foreach list each的相关文章

【Qt】C++中的循环遍历

介绍 本文主要讨论C++中常见的几种循环遍历操作的语法:基于迭代器.基于Qt库中的foreach关键字.基于C++11新增的for循环语句. 基于迭代器的遍历 在C++容器中经常需要进行遍历操作,在C++11之前一般使用下面这种方式--基于迭代器的遍历: QList<QString> list {"a", "b", "c", "d"}; QList<QString>::const_iterator ci

Android中List循环遍历性能对比

在android开发中只要是列表式风格界面我们几乎都需要用到List来存放数据,在数量很少的List的话几乎任何一种循环遍历方式整体性能都无差别,但是当我们遇到数据量稍大的时候有必要考虑用哪种方式写起来比较高性能. 常见的有以下三种: 第一种 for (String s : tests) { // .... } 第二种 int size = tests.size(); for (int i = 0; i < size; i++) { tests.get(i); } 第三种 Iterator<S

Android中List循环遍历性能对照

在android开发中仅仅要是列表式风格界面我们差点儿都须要用到List来存放数据,在数量非常少的List的话差点儿不论什么一种循环遍历方式总体性能都无区别.可是当我们遇到数据量稍大的时候有必要考虑用哪种方式写起来比較高性能. 常见的有下面三种: 第一种 for (String s : tests) { // .... } 另外一种 int size = tests.size(); for (int i = 0; i < size; i++) { tests.get(i); } 第三种 Iter

sqlserver中的循环遍历(普通循环和游标循环)

sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student 2.普通循环 1)循环5次来修改学生表信息 --循环遍历修改记录--declare @i int   set @i=0while @i<5begin    update Student set demo = @i+5 where [email protected]    set @[email protected] +1 end--查看结果--select * from Student 2)执行后的查

JavaScript中的数组遍历forEach()与map()方法以及兼容写法

原理: 高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: 数组中有几项,那么传递进去的匿名回调函数就需要执行几次: 每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组input: 理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改:但是我

微信小程序中的循环遍历问题

比如:如果在微信小程序中要遍历输出 0-9 的数,我们会使用for循环 for(var i=0;i<10;i++){ console.log(i); } 确实结果也是这样: 但是,如果我在循环时同时调用wx的api接口10次,那么输出的结果就会不同(这是产生了闭关的效应) eg:每次调用一次wx.showToast()接口,并在成功时输出循环的值. for(var i=0;i<10;i++){ wx.showToast({ title: 'haha', success:function(){

js中的各种遍历(forEach, map, for, for...in, for...of)

forEach es5出来的方法,这是我在react中用的最多的遍历方法之一,用法如下: models.forEach(model => app.model(model)); dva里面经常这么写. 写法很简单,经常用于通过这个数组内的数据创造新的结构,但是forEach的问题在于它不能跳出循环. map 也是用的最多的方法之一,用法如下 {data.map(d => ( <div className="balance-row"> <div classNa

3、二叉树:先序,中序,后序循环遍历详解

原创博客,转载请注明出处,谢谢~~~ 设计二叉树的循环遍历算法对于深刻理解二叉树很有帮助.下面就详细分析3个循环遍历算法. 1.先序循环遍历算法. 在自己设计循环遍历算法的时候,感觉先序遍历算法设计最为容易.下面把设计思路写下来,以防遗忘. 先序循环遍历二叉树的思路最为直接,规则就是: ①. 从根结点开始沿着左孩子一直走到头,在此过程中,每到达一个结点便访问其元素值(如,输出),同时检测该结点是否有右孩子,如果有则将指向右孩子的引用入栈: ②. 第一步完成以后,弹出一个栈顶引用作为本次循环的根节

yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并原数组信息---案例

yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并元数组信息---案例 public function actionRandomLists(){ //查询到了所有用户的信息 $UserInfo=UserOperate::find()->select('id,username,sex,signature,lng,lat,imgs')->asArray()->all(); //循环遍历取出来所有的用户信息中想要的id,然后去另一数据表查询想要的内容 f