数组遍历

for循环遍历数组:

使用for遍历数组

保证数组: 一定要是下标连续的索引数组

优点:效率很高, 就是数组访问方式, 只不过通过循环去取值

count(数组) 获取数组的长度, 是数组的实际元素的个数

不足:数组下标不一定是连续的

关联数组for循环不能遍历出值

$arr = array("aa", "bb", "cc", "dd", "ee", "ff", "ggg", "hh");

    $nums = count($arr);

    for($i=0; $i < $nums; $i++) {
        echo $arr[$i].'<br>';

    }

缺点:for循环遍历不出9及后面的数组,count为8

$arr = array("aa", "bb", "cc", "dd", 9=>"ee", "ff", "ggg", "hh");

$nums = count($arr);   //8

$nums = 13;

for($i=0; $i < $nums; $i++) {
    echo $arr[$i].'<br>';

}

foreach()语法遍历数组:

foreach(数组 as 自定义变量) {

}

数组有多少个元素, foreach就循环多少次

foreach会将数组中的元素 在每次循环中,依次将元素的值给自定义的变量,在每次循环中用到这个变量,即用到了当前的数组中的元素

foreach(数组 as 下标变量 => 值变量) {

}

PS:默认下标从0开始,若给了键,则从键开始下标+1

$arr = array("one"=>"aa", "bb", "three"=>"cc", "dd", 9=>"ee", "ff", "four"=>"ggg", "hh", "xxx", "yyy", "zz");

方法1:只遍历值

    foreach($arr as $value){
        echo "{$value}<br>";
    }
方法二:遍历键和值

    foreach ($arr as $kk => $vv) {
        echo "{$kk}======>{$vv}<br>";
    }

foreach遍历数组应用:

实现将数组遍历到表格内

<?php
$group=[      "name"=>"第三组",
              "price"=>8888,
              ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
              ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
              ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
      ];

      echo '<table border="1" width="800" align="center">';
      echo '<caption><h1>数组转为表格<h1></caption>';

      foreach ($group as $k=> $row) {
        echo '<tr>';
        if(is_array($row)){
        foreach ($row as $col) {
        echo '<td>'.$col.'</td>';
      }
      }else{
        echo'<td colspan="4">'.$k.':'.$row.'</td>';
      }
        echo '</tr>';
      }
      echo '</table>';

list函数遍历:

list() 函数 但这个函数和其它函数用法不同

作用: 将数组中的元素转为变量使用

1.等号左边使用list()函数, 等号右边只能是一个数组
2.数组中有几个元素,在list()中就用几个参数,而且参数必数是变量(新声明的自定义变量),不能是值
3.只能将索引数组(下标是连续), 转为变量, 是按下标0开始找的
4.可以在list()参数中通过,空项选择性的接收数组中的元素

    <?php
    //list以空参数接收第二个元素
     list($a, ,$c)=array("龙哥","小弟","小二");

     echo $a."<br>";
     // echo $b."<br>";
     echo $c."<br>";
    //用list分割字符串,explode分割。
    $str="龙哥_好帅";
    list($name,$pro)=explode("_",$str);

    echo $name.'<br>';
    echo $pro.'<br>';

each()函数特性:

each()只是一个函数,参数就是一个数组作为参数,返回的值,也是一个数组

1.返回的值是一个数组,数组固定有4个元素,而且下标也是固定的(1(值) value(值)(0(下标) key(下标))
2.each()只处理当前的元素将当前的元素(默认当前元素是第一元素,指针指向第一个)转为数组信息,处理完后,指针向下一个元素移动
3.如果指定已经在结束位置了,如果在使用each()获取元素,返回false

<?php

$arr=["one"=>"龙哥","小弟","小二"];
//1和value都是输出值,0和key输出都是下标,下边代码只能输出第一个元素,
// $one=each ($arr);
// echo $one['key'].'=>'.$one['value'].'<br>';
// echo $one[0].'=>'.$one[1].'<br>';
echo '<pre>';
//重复使用多次命令,才能全部输出
$one=each($arr);
print_r($one);

$one=each($arr);
print_r($one);

$one=each($arr);
print_r($one);
//数组元素已经没了,在输出只能返回false
$one=each($arr);
var_dump($one);
echo '</pre>';

使用list()、each()和while循环遍历数组:

<?php

$arr=["one"=>"龙哥","小弟","小二","four","five"];
while(list($key,$val)=each($arr)){
    // echo '<pre>';
    // print_r($tmp);
    // echo '</pre>';
    // echo "{$tmp['key']}=>{$tmp['value']}<br>";
    // echo "{$tmp['0']}=>{$tmp['1']}<br>";
    echo "{$key}=>{$val}<br>";
    echo '<br>';
}

使用数组的内部指针控制函数遍历数组:

控制指定的位置

next(); //下一个
prev(); //上一个
reset();//第一个
end(); //最后一个
each(); --- next()
key() 获取当前下标
current() 获取当前的值

$arr =array("one"=>"龙哥","two"=>"小弟","three"=>"观众","four"=>"小四","5"=>"five");

// next($arr);
// next($arr);
// next($arr);

end($arr);
prev($arr);
reset($arr);

echo "当前的位置(默认在第一个):".key($arr)."=>".current($arr)."<br>";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容