<form id="99h3p"></form>

      <em id="99h3p"></em>

                  <address id="99h3p"></address>
                  主頁 > 知識庫 > 網絡編程 > PHP >

                  PHP

                  php數組的遍歷講解 for foreach list each key

                  來源:中國IT實驗室 作者:佚名 發表于:2013-06-23 21:50  點擊:
                  php數組的遍歷講解 本文主要講解for,foreach,list,each,key,指針操作相關函數,array_flip ,array_reverse,array_walks等函數的對數組的遍歷 1.for循環遍歷數組 for循環是幾乎所有語言都可以用的一種遍歷數組的方式,但是在php語言中for循環不是遍歷數
                   php數組的遍歷講解  本文主要講解for,foreach,list,each,key,指針操作相關函數,array_flip ,array_reverse,array_walks等函數的對數組的遍歷
                    1.for循環遍歷數組
                    for循環是幾乎所有語言都可以用的一種遍歷數組的方式,但是在php語言中for循環不是遍歷數組的首選
                    一下是for循環實現數組遍歷的示例代碼
                    
                    /*
                    Designed By Androidyue
                    php中數組的遍歷講解*/
                    //for 循環遍歷數組
                    //聲明一個數組并且初始化
                    $array=array('Google','Chrome','Android','Youtube','Gmail');
                    //使用for循環遍歷各數組元素,count()用來計算數組的長度
                    for($i=0;$i
                    //打印數組的元素的值
                    echo $array[$i],"
                  ";
                    }
                    ?>
                    注意:使用for遍歷數組存在以下限制:
                    a 所遍歷的數組必須是索引數組(即下標為數字的數組),不能是關聯數組(下標為字符串的數組)
                    如下列代碼
                    
                    $arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
                    for($i=1;$i<=count($arrGoogle);$i++){
                    echo $arrGoogle[$i];
                    }
                    ?>
                    在運行時會報錯,類似于這樣的錯誤Notice: Undefined offset: 1 in D:/phpnow/htdocs/holiday/php_array_visit_summary.php on line 13這說明for不適合用于關聯數組的遍歷
                    b,for遍歷的數組既要滿足是索引數組,同時下標又要是連續的整數,如果不是連續的整數則會發生提示
                    如下列代碼
                    
                    $array=array(1=>'Google',5=>'Chrome',7=>'Android',9=>'Youtube',12=>'Gmail');
                    //print_r($array);
                    for($i=0;$i
                    echo $array[$i],"
                  ";
                    }
                    ?>
                    這種情況下也會發生提示類似于Notice: Undefined offset: 2 in D:/phpnow/htdocs/holiday/php_array_visit_summary.php on line 10 因此for循環遍歷數組必須是索引數組而且下標必須是連續的。
                    2.foreach遍歷數組
                    foreach可以說是php語言單獨為遍歷數組提供的一種方法(其他語言也可能有),這種遍歷方法是php遍歷數組的首選
                    foreach遍歷時可以是這樣的foreach($array as $key=>$value)包含鍵值元素 也可以是foreach($array as $value)只包含值
                    foreach($array as $value)示例代碼
                    
                    /*
                    Designed By Androidyue
                    php中數組的遍歷講解*/
                    //foreach實現遍歷數組
                    $arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
                    //只包含值
                    foreach($arrGoogle as $value){
                    echo $value.'
                  ';
                    }
                    ?>
                    foreach($array as $key=>$value)的代碼示例
                    
                    $arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
                    foreach($arrGoogle as $key=>$value){
                    echo '第',($key+1),'個數組元素的值是',$value,'
                  ';
                    }
                    ?>
                    注意以上的$value和$key都是自定義的變量,因此可以根據需要更改成符合自己風格的命名方式
                    3.使用list函數遍歷數組
                    list()函數是將數組中的值賦給變量
                    標準語法:void list ( mixed varname, mixed ... )
                    用list實現對數組的遍歷代碼
                    
                    //使用list遍歷函數
                    //$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');//使用關聯數組不行
                    $arrGoogle=array('google','Gmail','Chrome','Android');
                    list($brand,$email,$webBrowser,$phone)=$arrGoogle;
                    echo $brand,$email,$webBrowser,$phone;
                    ?>
                    注意:
                    a list函數所接受的數組只能是索引數組,不能是關聯數組!如果是關聯數組,則會出現類似 Notice Undefined offset提示
                    b 如果只是部分取出數組的值,只需 按照這樣的寫法即可,list(,,$chrome,)=$arrGoogle;這樣我們就可以去除chrome的信息,但是注意一定要保證list參數與數組的元素個數相同(所取值前面的個數)
                    c list函數賦值按索引順序賦值
                    4.each函數遍歷數組
                    each函數返回輸入數組的鍵值對
                    標準語法:array each(array input array)
                    返回值:返回4個值0,1,key,value;其中0和key包含鍵名,而1和value包含相應的數據
                    使用each遍歷數組的示例代碼如下:
                    
                    //使用each函數遍歷數組
                    $arrGoogle=array('google','Gmail','Chrome','Android');
                    //第一次使用each取得當前鍵值對,并且將指針移到下一個位置
                    $arrG=each($arrGoogle);
                    //打印結果,并且換行以清晰顯示結果
                    print_r($arrG);
                    print '
                  ';
                    $arrGmail=each($arrGoogle);
                    print_r($arrGmail);
                    print '
                  ';
                    $arrChrome=each($arrGoogle);
                    print_r($arrChrome);
                    print '
                  ';
                    $arrAndroid=each($arrGoogle);
                    print_r($arrAndroid);
                    print '
                  ';
                    //當指針位于數組末尾再次執行函數each,如果是這樣再次執行結果返回false
                    $empty=each($arrGoogle);
                    //如果指針無法繼續后移返回false
                    if($empty==false){
                    print '指針以位于數組末尾,無法在向后移,故返回false';
                    }
                    ?>
                    注意:該函數的參數和返回值(在執行該函數前指針不位于數組末尾時)都為數組,在執行函數前數組指針位于數組末尾時再次執行該函數返回值為false
                    開始的位置是第一個元素,每(正常)執行一次該函數,指針向后移到下一個地址
                    5.key()遍歷數組
                    each是用來返回數組的鍵名
                    基本語法:mixed key ( array &array )
                    key函數遍歷數組示例代碼如下
                    
                    //Designed By Androidyue
                    //使用key函數遍歷數組
                    //初始化一個關聯數組
                    $arrChina=array('a'=>'Hebei','b'=>'Anhui','c'=>'Beijing','d'=>'Guangdong','e'=>'Shanghai');
                    //初始化一個索引數組 但是索引數組使用key返回的是空字符產
                    $arrCN=array('Hebei','Anhui','Beijing','Guangdong','Shanghai');//key顯示的是數組的字符串下標,如果為索引數組則為空字符串
                    //print_r($arrChina);
                    while($key=key($arrChina)){//對于關聯數組使用key方法可以執行
                    echo $key,'
                  ';
                    next($arrChina);
                    }
                    print_r($arrCN);//輸出一下索引數組
                    while($keyName=key($arrCN)){//這里調用key函數賦值后為false,while條件不成立,不進行{}之間的操作
                    /*if(empty($keyName)){
                    print '該鍵名為空
                  ';
                    }*/
                    /*if($keyName=''){
                    print '該鍵名為空
                  ';
                    }*/
                    var_dump($keyName);
                    }
                    //驗證對索引數組使用key函數的返回值賦值給變量這個表達式的布爾值
                    if(($KeyName=key($arrCN))==false){
                    print 'False';
                    }
                   

                  有幫助
                  (1)
                  100%
                  沒幫助
                  (0)
                  0%
                  自在自线亚洲А∨天堂在线,亚洲熟妇中文字幕五十中出,亚洲熟妇AV一区