each() 和 list() 结合使用原理

1、each — 返回数组中当前的键/值对并将数组指针向前移动一步 

each的返回值:

返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为>,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。 

示例:

$colorArr = array("a"=>"red","b"=>"yellow","c"=>"blue");
var_dump(each($colorArr));

输出结果:

array(4) { [1]=> string(3) "red" ["value"]=> string(3) "red" [0]=> string(1) "a" ["key"]=> string(1) "a" }

2、list — 把数组中的值赋给一些变量。list()  用一步操作给一组变量进行赋值,返回值为一个数组。

示例:

$testArr = array("张","王");
$newArr = list($key,$val) = $testArr;
echo "<pre>";
var_dump($newArr);
echo "</pre>";

输出结果:

array(2) {
  [0]=>
  string(3) "张"
  [1]=>
  string(3) "王"
}

3、each() 和 list() 结合使用

示例:

$colorArr = array("a"=>"red","b"=>"yellow","c"=>"blue");
$keyStr = "";
$valStr = "";
while(list($key,$val)=each($colorArr)){
	$keyStr .= "$key \t";
	$valStr .= "$val \t";
}
echo "$keyStr <br /> $valStr";


输出结果:

a b c 
red yellow blue 
4、问题来了:为什么可以将四个值赋给两个变量呢?

这里涉及到了一个小知识点:list()  仅能用于数字索引的数组并假定数字索引从 0 开始。 所以在它们组合使用的时候,会自动过滤掉each产生的数组中的非数字键名的单元。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值