php数组中常用的多种遍历方式

  1 <?php
  2 /* 1使用 for语句循环遍历数组
  3     a 其他语句(只有这一种方式)
  4 *   b. php  这种方式不是我们首选方式
  5     c数组必须是索引数组,而且下标还必须是连续的才能遍历
  6     (索引数组下标还可以不连续, 数组还有关联数组)
  7 *2 使用foreach 语句循环遍历语句
  8   foreach(数组变量 as变量值)
  9   
 10   {
 11       //循环体
 12   }
 13   a 循环次数由数组的元素个数决定
 14   b //每次循环 都会将数组中的元素分别赋值给后面的变量
 15   foreach(数组变量as 下标变量=>值变量)
 16 
 17 *3 while() list() echo 组合循环遍历数组
 18 echo()函数 ,a需要一个数组作为参数;
 19 b返回来的也是数组
 20 c  返回来的数组是0,1,key value 四个下标(固定的)
 21    0 和 key下标是当前参数数组元素的键
 22    1和value下标是当前参数数组元素的值
 23 d默认当前元素是一个元素 
 24 e每执行一次后就会将当前元素向后移动
 25 f如果到最后的元素在执行这个函数,则返回false
 26 list()函数
 27 
 28 
 29  a. list()=array();需要将一个数组赋值给这个函数
 30 b.这个数组中的元素个数要和list函数中的参数个数相同
 31 c.数组中的每个元素值会赋值给list函数中的每个参数,list将买个参数转为变量
 32 d .list只能接受索引数组
 33 e 按照索引下标的顺序
 34 */
 35 
 36 list($name,$age,$sex)=array("张三","10","nan");
 37 list(,,$sex)=array("张三","10","nan");
 38 list($name,,$sex)=array("张三","10","nan");
 39 echo $name."<br>";
 40 echo $age."<br/>";
 41 echo $sex."<br/>";
 42 
 43   $ip="192.168.1.128";
 44    $ips=explode(".","$ip");
 45    print_r($ips);
 46 
 47    list(,,,$num2)=explode(".","$ip");
 48    
 49    
 50    echo $num2."<br/>";
 51 
 52 $user=array(1,"张三","40","李四"=>"nan","abcd@sina.com" );
 53 
 54 for($i=0;$i<count($user);$i++)
 55 {
 56     //echo "\$user[{$i}]=".$user[$i]."<br/>";
 57 }
 58 
 59 foreach( $user as $key =>$val)
 60 {
 61 echo $key."=========>".$val."<br/>";
 62 //echo $val."<br/>";
 63 }
 64 
 65 
 66 
 67 //三维数组的遍历 
 68 $info=array(
 69         "user"=>array(
 70                 //$user[0]
 71                 array(1, "zansan", 10, "nan"),
 72                 //$user[1][1]
 73                 array(2, "lisi", 20, "nv"),    //$user[1]
 74                 //$user[2]
 75                 array(3, "wangwu", 30, "nan")
 76         ),
 77         "score"=>array(
 78                 array(1, 100, 90, 80),
 79                 array(2, 99, 88, 11),
 80                 array(3, 10, 50, 88)
 81             ),
 82         "connect"=>array(
 83                 array(1, '110', 'aaa@bbb.com'),
 84                 array(2, '120', 'bbb@ccc.com'),
 85                 array(3, '119', 'ccc@ddd.com')    
 86             )
 87     );
 88 
 89 
 90    foreach ($info as $tableName=>$table)
 91    {
 92 
 93     echo'<table  align="center" width="500" border="1">';
 94        echo'<caption><h1>'.$tableName.'</h1></caption>';
 95        foreach($table as $row )
 96        {
 97 
 98            echo'<tr>';
 99            foreach($row as $col )
100                echo '<td>'.$col.'</td>';
101 
102                
103            echo'</tr>';
104        }
105        
106        echo'</table>';
107    }
108 //使用数组的内部指针控制函数
109 //next(数组);
110 //prev(数组);
111 //reset(数组);
112 //end(数组);
113 //current(数组);
114   $usedemo=array("id"=>1,"name"=>"zhangsan","age"=>10, "sex"=>"man"); 
115  // each($usedemo);//array([1]=>1 [value]=1 [0]=>id [key]=>id);
116 
117 while (list($key,$value)=each($usedemo))//array([1]=>1 [0]=1);
118 {
119     echo $key."=======".$value."<br/>";
120 }
121 reset($usedemo);
122 
123  while (list($key,$value)=each($usedemo))//array([1]=>1 [0]=1);
124 {
125     echo $key."=======".$value."<br/>";
126 }
127 reset($usedemo);
128 next($usedemo);
129 next($usedemo);
130 while (list($key,$value)=each($usedemo))//array([1]=>1 [0]=1);
131 {
132     echo $key."=======".$value."<br/>";
133 }
134 echo"<br><br><br><br><br>";
135 reset($usedemo);
136 
137 print_r(current($usedemo));
138 
139 while($arr=each($usedemo))
140 {
141 echo $arr[0]."=>".$arr[1]."<br/>";
142 
143 echo $arr["key"]."----->".$arr["value"]."<br/>";
144 }
145 
146 $a=each($usedemo);
147 
148 print_r($a);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id )
149 
150 $b=each($usedemo);
151 print_r($b);
152 
153 $c=each($usedemo);
154 print_r($c);
155 
156 $d=each($usedemo);
157 print_r($d);
158 
159 $e=each($usedemo);
160 var_dump($e);
161 ?>
原文地址:https://www.cnblogs.com/58top/p/2922226.html