数组遍历

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].'
'; }

缺点: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].'
'; }

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}
"; } 方法二:遍历键和值 foreach ($arr as $kk => $vv) { echo "{$kk}======>{$vv}
"; }

foreach遍历数组应用:

实现将数组遍历到表格内

"第三组",
              "price"=>8888,
              ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"[email protected]"],
              ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"[email protected]"],
              ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"[email protected]"]
      ];

      echo '';
      echo '';

      foreach ($group as $k=> $row) {
        echo '';
        if(is_array($row)){
        foreach ($row as $col) {
        echo '';
      }
      }else{
        echo'';
      }
        echo '';
      }
      echo '

数组转为表格

'.$col.''.$k.':'.$row.'
';

list函数遍历:

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

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

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

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

each()函数特性:

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

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

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

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

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

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

控制指定的位置

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)."
";

你可能感兴趣的:(数组遍历)