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 ?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构