php数组遍历_PHP教程

WBOY
풀어 주다: 2016-07-13 09:48:01
원래의
1017명이 탐색했습니다.

php数组遍历

<!--?php
/*
 * 此程序是对php数组的操作,主要是在遍历时修改数组的值
 */
/*
$array = array(A=-->1, B=>1, C=>1, D=>1);
foreach($array as $key => $value){
    if($key == B){
        $array[A] = CHANGE;
        $array[D] = CHANGE;
        print_r($array);
        echo &#39;
&#39;;
    }
    //如果想要打印CHNAGE,那么可以使用
    //if($array[$key] == &#39;CHANGE&#39;)
    //上面的取出的才是数组实际元素的值,使用$value取出的是array数组的原始值的副本
    if($value === CHANGE)  
        echo $value.&#39;
&#39;;
}
print_r($array);
*/
/*
 * 结果是
 * Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) 
   Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE )
 * 
 */

$array = array(A=>1, B=>1, C=>1, D=>1);
foreach($array as $key => $value){
    if($key == B){
        $array[A] = CHANGE;
        $array[D] = CHANGE;
        print_r($array);
        echo &#39;
&#39;;
    }
    //如果想要打印CHNAGE,那么可以使用
    if($array[$key] == &#39;CHANGE&#39;)
        echo $value.&#39;
&#39;;
}
print_r($array);
/*
 * 结果是
 * Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) 
   1(这里的1是数组原始的键对应的值)
   Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE )
 */
로그인 후 복사

注意:除非数组被引用,foreach操作的是执行数组的一个拷贝,不是数组本身,而且在遍历的过程中对数组元素的修改不会影响到该副本(感觉就像在遍历之前就将数组进行了一次拷贝,遍历时操作的是数组副本)。foreach对数组指针有些副作用,除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。只要在foreach中,直接按照键取$array中的元素进行各种判断赋值操作就可以了。


参见php foreach手册

foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement
로그인 후 복사

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value(创建一个副本) 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key(创建一个副本)。

Note:

当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset() 。

由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。

可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。

<!--?php
$arr  = array( 1 ,  2 ,  3 ,  4 );
foreach ( $arr  as & $value ) {
     $value  =  $value  *  2 ;
}
// $arr is now array(2, 4, 6, 8)
unset( $value );  // 最后取消掉引用
?-->
로그인 후 복사

注意:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。



 

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1025013.htmlTechArticlephp数组遍历 1, B=1, C=1, D=1);foreach($array as $key = $value){ if($key == B){ $array[A] = CHANGE; $array[D] = CHANGE; print_r($array); echo ; } //如果想要打印CHNAGE,那么...
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿