php foreach只能遍历数组么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php foreach只能遍历数组么相关的知识,希望对你有一定的参考价值。
foreach肯定可以遍历数组,但是有一些非数组的对象,有数组的特点也能通过foreach遍历出来 参考技术A foreach是遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。
遍历对象的例子可参考:http://php.net/manual/zh/language.oop5.iterations.php本回答被提问者采纳 参考技术B 是的,只能遍历数组
PHP遍历数组常用方式(for,foreach,while,指针等等)
1使用for循环遍历数组
count($arr)用于统计数组元素个数
for循环只能用于遍历,纯索引数组!!如果存在关联数组,count统计两种数组的总个数
使用for循环遍历混合数组,导致数组越界
$arr=array(1,2,3,4,5,6,7);
$num=count($arr);//count最好放在for外面,可以让函数只执行一次
for($i=0;$i<count($arr);$i++){
echo "{$i}==>{$arr[$i]}<br/>";
}
2.foreach循环遍历数组(foreach可以便利任何类型数组)
例如:
$arr=array(1,2,3,5,6,7,"one"=>9);
foreach($arr as $item){
echo "{$item}<br/>";
}
foreach($arr as $key=>$item){
echo "{$key}==>{$item}<br/>";
}
3.3.使用list() ,each(),while()遍历数组
用法:
while(list($key,$value)=each($arr)){
echo "{$key}-->{$value}<br/>";
}
list():用于将数组的每一个值,赋给list函数的每一个参数。(list函数的参数,必须小于等于 数组元素的个数)
eg:list($a,$b,$c)=[1,2,3];-->$a=1;$b=2;$c=3;
注意:①list解析数组时直解析索引数组
②list可以通过传递空参数选择性解析数组的值
list($a,,$b)=[1,2,3];-->$a=1;$b=3;
each():用于返回数组当前指针所在位的键值对!并将指针后移一位;
返回值:如果数组有下一位则返回一个数组。包含一个索引数组(0-键,1-键)和一个关联数组("key"-键,"value"-值);
如果指针没有下一位返回false;
③ 数组使用each()遍历完一遍后,指针使用处于最后一位的下一位;即再用each()始终返回false
如果要再用要用reset($arr)
4.使用数组指针遍历函数
①next:将数组指针,后移一位。并返回后一位的值;没有返回false;
②prev:将数组指针,前移一位。并返回后一位的值;没有返回false;
③end:将数组指针,移至最后一位。并返回后一位的值;空数组返回false;
④reset:将数组指针,恢复到第一位。并返回第一位的值;空数组返回false;
⑤key:返回当前指针所在位的键;
⑥current:返回当前指针所在位的值;
以上是关于php foreach只能遍历数组么的主要内容,如果未能解决你的问题,请参考以下文章
PHP 数组遍历方法大全(foreach,list,each)