PHP数组的遍历讲解

分类: 开发语言 > PHP

php遍历数组:

本文主要讲解for、foreach、list、each、key,指针操作相关函数,array_flip、array_reverse、array_walks等函数对数组的遍历。

 

1、for循环遍历数组

     for循环是几乎所有语言都可以用的一种遍历数组的方式,但是在php语言中for循环不是遍历数组的首选。

例子:

     $array = array('google', 'chrome', 'android');

     for ($i=0; $i

     {

          echo $array[$i] . '
';

     }

注意:使用for遍历数组存在一下限制:

     1)所遍历的数组必须是索引数组(即下表为数字的数组),不能是关联数组(下标为字符串的数组)

     2)for遍历数组既要满足是索引数组,同事下标又要是连续的整数,如果不是连续的整数则会发生错误提示。

 

2、foreach遍历数组

foreach可以说是php语言单独为遍历数组提供的一种方法,这种遍历方法是php遍历数组的首选

foreach遍历时可以是这样的foreach($array as $key => $value)包含键值元素,也可以是foreach($array as $value)只包含值

foreach($array as $key => $value)的实例

     

     $array = array('brand' => 'google', 'email' => 'Gmail', 'webBrowser' => 'Chroma');

     foreach ($array as $key => $value)

     {

          echo $key . ':' . $value;

     }

 

3、使用list函数将数组中的值赋给变量

用list实现对数组的遍历代码:

     

     //使用list遍历函数  

     //$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');

     //使用关联数组不行  

     $arrGoogle=array('google','Gmail','Chrome','Android');  list($brand,$email,$webBrowser,$phone)=$arrGoogle;  

     echo $brand,$email,$webBrowser,$phone;  

     ?>  

注意:

     a、list函数所接受的数组只能是索引数组,不能是关联数组!如果是关联数组,则会出现类似Notice Undefined offset提示

     b、如果只是部分取出数组的值,只需按照这样的写法,list(,,$chrome,)=$arrGoogle,这样我们就可以取出chrome的信息,但是注意一定要保证list参数与数组的元素个数相同(所取值前面的个数);

     c、list函数赋值按索引顺序赋值

 

4、each函数遍历数组

each函数返回输入数组的键值对

标准语法:array each(array input array)

返回值:返回4个值,0,1,key,value;其实0和key包含键名,而1和value包含相应的数据;

使用each遍历数组的实例代码如下:

     //使用each()函数遍历数组

     $arr = array('test1' => 'google', 'test2' => 'Gmail', 'test3' => 'Chrome', 'test1' => 'Android');

     //第一次使用each取得当前键值,并且将指针移到下一个位置,如果下一个的键值与前面一样则会返回false;

     $test1 = each($arr);

     print_r($test1);

     // Array ( [1] => Android [value] => Android [0] => test1 [key] => test1 )

     $test2 = each($arr);

     print_r($test2);

     //Array ( [1] => Gmail [value] => Gmail [0] => test2 [key] => test2 )

注意:

     a、该函数的参数和返回值(在执行该函数钱指针部位与数组末尾时)都为数组,在执行函数数组指针于数组微末时再次执行该函数返回为false;

     b、开始的位置是第一个元素,每(正常)执行一次该函数,指针向后移到下一个地址;

 

5、list() 与 each() 一起用实现循环遍历数组

代码如下:

     $arr = array('test1' => 'google', 'test2' => 'Gmail', 'test3' => 'Chrome', 'test1' => 'Android');

     while(list($key, $value) = each($arr))

     {

          echo $key . '-' . $value . ';;;';

     }

     // test1-Android;;;test2-Gmail;;;test3-Chrome;;

来源:原创 发布时间:2020-09-12 20:47:49