如何用foreach和for进行数组循环遍历 | 您所在的位置:网站首页 › 用字符串做循环结构 › 如何用foreach和for进行数组循环遍历 |
foreach 语法结构用于遍历数组。 foreach()PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。 语法: foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement登录后复制上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。 例子: 登录后复制运行该例子输出: 18 20 25登录后复制登录后复制使用数组键值登录后复制运行例子输出: wang: 18 li: 20 zhang: 25登录后复制提示当 foreach 开始执行时,数组内部的指针会自动指向第一个单元,这意味着不需要在 foreach 循环之前调用 reset()。 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。对返回的数组单元的修改也不会影响原数组(见下面例子),但 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。 登录后复制运行例子输出: 28 30 35 Array ( [wang] => 18 [li] => 20 [zhang] => 25 )登录后复制要在 foreach 中修改原数组元素,可以通过引用来实现,将上面的例子更改为: 登录后复制运行例子输出: 18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )登录后复制遍历多维数组foreach 语法结构只能用于遍历一维数组,要遍历多维数组,一般是将 foreach 嵌套递归使用或者将原数组分割为一维数组再进行 foreach 遍历。 一二维数组混合的例子: $arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25)); foreach ($arr_age as $age) { if(is_array($age)){ foreach ( $age as $detail) { echo $detail,''; } } else { echo $age,''; } } ?>登录后复制运行该例子输出: 18 20 小张 25登录后复制对多维数组的遍历处理就要根据实际的数据结构而采取最合适的处理方式。 延伸预读PHP 数组是通过哈希表(HashTable)表实现的,因此 foreach 遍历数组时是依据元素添加的先后顺序来进行的。如果想按照索引大小遍历,应该使用 for() 循环遍历。 for() 循环遍历数组如果是操作连续键值的数组,也可以采用 for() 循环来遍历数组: 登录后复制运行例子输出如下: 18 20 25登录后复制登录后复制提示也可以用 list() 和 each() 结合来遍历数组,但测试发现效率不如 foreach() 。 //使用array()语句结构将联系人列表中所有数据声明为一个二维数组,默认下标是顺序数字索引 $contact1 = array( //定义外层数组 array(1,'高某','A公司','北京市','(010)987654321','[email protected]'),//子数组1 array(2,'洛某','B公司','上海市','(021)123456789','[email protected]'),//子数组2 array(3,'峰某','C公司','天津市','(022)24680246','[email protected]'), //子数组3 array(4,'书某','D公司','重庆市','(023)13579135','[email protected]') //子数组4 ); //以HTML表格的形式输出二维数组中的每个元素 echo ''; echo '联系人列表'; echo ''; echo '编号姓名公司地址电话EMALL'; echo ''; //使用双层for语句嵌套二维数组$contact1,以HTML表格的形式输出 //使用外层循环遍历数组$contact1中的行 for($row=0;$row$s){ //echo $key;//以每个数组的键值作为表名 foreach($s as $row){ echo $row; } }登录后复制以上就是如何用foreach和for进行数组循环遍历 的详细内容,更多请关注php中文网其它相关文章! |
CopyRight 2018-2019 实验室设备网 版权所有 |