php数组遍历

        来说下php数组的遍历,可能很多人会质疑,数组的遍历有啥好说的,一个for循环,不就出来了,其实不然,for循环遍历php数组是最糟糕的php代码,下面对比详细分析下。

        大家都知道C++,C#在定义数组的时候会在栈区分配连续固定大小的内存空间给数组变量,C++一般用for循环递增偏移量遍历数组;C#除了for循环,还可以使用foreach遍历;那php呢??经常会看到下面的代码:

<?php
$arr = array(
			0=>"zxp",
			1=>"male",
			2=>"北京西三旗"
		);

for($i=0;$i<count($arr);$i++)
{
	echo $arr[$i];
}
?>

        这样的代码暂时没问题,但是容错性特低,健壮性特差,一不小心就出错了。php数组并不是连续的内存空间,无法使用连续的偏移量遍历数组,并且php数组可伸缩,比如上面代码$arr插入一个元素$arr[5]=5,for循环肯定要出错了。

 

        php数组遍历要使用foreach和while,下边分别给出这两种遍历法

<?php
$arr = array(
			//"comment"=>"personal information",
			0=>"zxp",
			1=>"male",
			"age"=>29,
			2=>"北京西三旗"
		);
$arr[4] = "高级开发工程师";
foreach ($arr as $key => $value) {
	echo $key.':'.$value.'</br>';
}
?>

如上代码,遍历的事情交给foreach,遍历到的数组元素,键名赋值给$key,值赋值给$value。

 

<?php
$arr = array(
			0=>"zxp",
			1=>"male",
			"age"=>29,
			2=>"北京西三旗"
		);

reset($arr);
while (list($key,$value) = each($arr))
{
	echo $key.':'.$value.'</br>';
}
?>

如上代码,数组遍历的事情交给each函数。在使用while循环加list操作加each函数遍历php数组的时候一定要注意:在while循环前,调用下reset函数,将数组指针指向第一个元素,不然,你会发现遍历出来的元素不够数目。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值