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;;