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)

php foreach数组问题

php foreach 修改数组不生效?

php foreach输出数组只输出元素的第一个字符

PHP遍历数组常用方式(for,foreach,while,指针等等)

Java中foreach为啥不能给数组赋值