侧边栏壁纸
博主头像
云BLOG 博主等级

行动起来,活在当下

  • 累计撰写 318 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
WEB

PHP 循环遍历数组

Administrator
2024-04-23 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

for循环遍历

<?php
/**
 * 1.for循环遍历-只能针对索引数组
 */
$for_arr     = [1, 2, 3];
$for_arr_len = count($for_arr);
for($i = 0; $i < $for_arr_len; $i++) {
   echo $for_arr[$i] . PHP_EOL;
}
 
//关联数组
$for_arr2 = ['a' => 1, 'b' => 2, 'c' => 3];
$key_arr = array_keys($for_arr2);
for($i = 0; $i < $for_arr_len; $i++) {
   echo 'key=' . $key_arr[$i] . ', value=' . $for_arr2[$key_arr[$i]] . PHP_EOL;
}

foreach遍历

注意:foreach遍历即可用于索引数组也可用于关联数组

/**
 * 2.foreach循环遍历-既能针对索引数组又能针对关联数组
 */
//索引数组
$foreach_arr1 = [1, 2, 3];
foreach($foreach_arr1 as $k1 => $v1) {
   echo 'key=' . $k1 . ', value=' . $v1 . PHP_EOL;
}
 
//关联数组
$foreach_arr2 = ['a' => 1, 'b' => 2, 'c' => 3];
foreach($foreach_arr2 as $k2 => $v2) {
   echo 'key=' . $k2 . ', value=' . $v2 . PHP_EOL;
}

each 遍历(PHP 7.2.0 起废弃)

注意:each 结合while、list遍历即可用于索引数组也可用于关联数组


/**
 * 3.each结合while、list循环遍历--既能针对索引数组又能针对关联数组
 */
//索引数组
$each_arr1 = [1, 2, 3];
while(list($k1, $v1) = each($each_arr1)) {
   echo 'key=' . $k1 . ', value=' . $v1 . PHP_EOL;
}
 
//关联数组
$each_arr2 = ['a' => 1, 'b' => 2, 'c' => 3];
while(list($k2, $v2) = each($each_arr2)) {
   echo 'key=' . $k2 . ', value=' . $v2 . PHP_EOL;
}

foreach遍历和each遍历的区别
each()函数的作用是输出当前指针指向的数组元素并且指针在向前移动一位,当前指针已经指向数组元素的末尾的时候,each会返回false。这个时候,如果后面还有代码是通过each循环输出,则返回false,这个时候需要重置指针,让指针指向数组元素的第一个元素。
foreach 每次都会自己重置数组指针,把指针始终指向数组的第一个元素。
两个each


$each_arr = [1, 2, 3];
while(list($k, $v) = each($each_arr)) {  //循环完毕后,数组指针回指向末尾的元素
   var_dump('key=' . $k . ', value=' . $v) . PHP_EOL;
}
 
while(list($k, $v) = each($each_arr)) {    //由于指针已经指向数组的末位尾元素,each返回false,不进入循环。
   var_dump('key=' . $k . ', value=' . $v) . PHP_EOL;
}

两个each和reset


$each_arr = [1, 2, 3];
while(list($k, $v) = each($each_arr)) {    //循环完毕后,数组指针会指向末尾的元素
   var_dump('key=' . $k . ', value=' . $v) . PHP_EOL;
}
 
reset($each_arr);  // 重置指针即指针指向数组第一个元素
 
while(list($k, $v) = each($each_arr)) {
   var_dump('key=' . $k . ', value=' . $v) . PHP_EOL;
}

0

评论区