php foreach函数使用

1:
foreach($arr as $key=>$val){
echo $key;
}
2.
foreach(array_keys($arr) as $key){
echo $key;
}
两者什么情况下使用,区别是什么,效率如何?

应该第一种效率较高,第二种需要先从数组中取出键值然后再进行循环,多做了一个操作。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-17
都是循环获取key,第一种效率较高。因为第二种做了array_keys($arr);获取所有key作为新的数组:
可以将第二种分解代码为:
$keys = array_keys($arr);
foreach($keys as $key=>$val){
echo $val;//此$val就是$arr的key;
}本回答被提问者采纳
相似回答