遍历数组

遍历数值数组

遍历数组中的所有元素是常用的一种操作,在遍历的过程中可以完成查询或其他功能。

<1>使用for结构遍历数组;

例子

<?php
 
//声明一个数组,值为1到10
$num = array(1,2,3,4,5,6,7,8,9,10);
 
//按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9
echo $num[0].'<br />';
echo $num[9].'<br />';
 
 
//我们可以得到数组中元素的总个数,为10
echo count($num);
 
//遍历这个索引数组的话,我们就可以定义一个变量为$i
//$i 的值为0,从0开始
//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环
for($i = 0 ; $i < count($num) ; $i++){
 
    echo $num[$i].'<br />';
 
}
 
?>

可以完成数组的遍历。

从0开始的,定义$i=0 。每次循环的时候让$i 加1 ,但是必须要小于10,因为数组下标的最大值为9。

这样,我们就学会了了对索引连续下标数组的遍历。

<2>使用foreach结构遍历数组;

for循环可以遍历连续下标的索引数组。可是,我们发现我们遍历不了关联数组,也遍历不了下标不连续的索引数组。

那我们其实在学循环的时候,有一个布尔型循环是专门用来循环数组的。这个循环的基本语法就是foreach基本语法。

语法格式如下:

foreach( 要循环的数组变量 as [键变量 =>] 值变量){

//循环的结构体

}

遍历关联数组

<?php
 
$data = [
        'fj' => '凤姐',
        'fr' => '芙蓉',
    ];
 
 
foreach($data  as $key => $value){
        echo $key . '-------' . $value . '<br />';
}
 
 
//如果我们只想读取值的话,就可以把下面的$key => 给删除掉,读取的时候,就只读取值了。做完上面的实验,你可以打开下面的代码再实验几次。
 
/*
foreach($data  as  $value){
        echo  $value . '<br />';
}
*/
?>

遍历索引数组

我们可以通过foreach遍历连续的索引数组,如下例:

<?php
 
$data = array(
        0 => '中国',
        100 => '美国',
        20 => '韩国',
        300 => '德国',
    );
 
//待会儿可以自己做做实验,循环遍历一下下面的这个数组
//$data = array(1,2,3,4,5,6,7,8,9,10);
 
 
foreach($data as $k => $v){
 
    echo $k . '------' . $v .'<br />';
 
}
 
?>

遍历多维数组

<?php
 
$data = array(
 
        0 => array(
            '中国' => 'china',
            '美国' => 'usa',
            '德国' => ' Germany',
        ),
 
        1 => array(
            '湖北' => 'hubei',
            '河北' => 'hebei',
            '山东' => 'shandong',
            '山西' => 'sanxi',
        ),
 
);
 
//注:我们在使用foreach循环时,第一次循环将键为0和键为1的两个数组赋值给一个变量($value)。然后,再套一个循环遍历这个$value变量,$value中的值取出来,赋值给$k和$v。
 
foreach($data as $value){
 
    //第一次循环把国家的数组赋值给了$value
    //第二次循环把中国的省份的数组又赋值给了$value
    //因此,我在循环的时候把$value再遍历一次
 
    foreach($value as $k => $v){
            echo $k . '-----' . $v .'<br />';
    }
 
    //为了看的更清晰,我在中间加上华丽丽的分割线方便你来分析
 
    echo '----------分割线-----------<br />';
 
}
 
?>

总结:

1.     第一次循环的时候,将数组赋值给了$value,然后用foreach循环$value。将二维的子数组中的键给到$k,值赋值给变量$v。

2.     第一次循环退出子数组的循环,执行后续代码显示分割线。

3.     依此类推,第二次循环也是这样。


继续学习
||
<?php $data = array( 0 => '中国', 100 => '美国', 20 => '韩国', 300 => '德国', ); //待会儿可以自己做做实验,循环遍历一下下面的这个数组 //$data = array(1,2,3,4,5,6,7,8,9,10); foreach($data as $k => $v){ echo $k . '------' . $v .'<br />'; } ?>
提交重置代码