php數組遍曆

來源:互聯網
上載者:User
來說下php數組的遍曆,可能很多人會質疑,數組的遍曆有啥好說的,一個for迴圈,不就出來了,其實不然,for迴圈遍曆php數組是最糟糕的php代碼,下面對比詳細分析下。

大家都知道C++,C#在定義數組的時候會在棧區分配連續固定大小的記憶體空間給陣列變數,C++一般用for迴圈遞增位移量遍曆數組;C#除了for迴圈,還可以使用foreach遍曆;那php呢??經常會看到下面的代碼:

<?php$arr = array(0=>"zxp",1=>"male",2=>"北京西三旗");for($i=0;$i<count($arr);$i++){echo $arr[$i];}?>

這樣的代碼暫時沒問題,但是容錯性特低,健壯性特差,一不小心就出錯了。php數組並不是連續的記憶體空間,無法使用連續的位移量遍曆數組,並且php數組可伸縮,比如上面代碼$arr插入一個元素$arr[5]=5,for迴圈肯定要出錯了。

php數組遍曆要使用foreach和while,下邊分別給出這兩種遍曆法

<?php$arr = array(//"comment"=>"personal information",0=>"zxp",1=>"male","age"=>29,2=>"北京西三旗");$arr[4] = "進階開發工程師";foreach ($arr as $key => $value) {echo $key.':'.$value.'</br>';}?>

如上代碼,遍曆的事情交給foreach,遍曆到的數組元素,鍵名賦值給$key,值賦值給$value。

<?php$arr = array(0=>"zxp",1=>"male","age"=>29,2=>"北京西三旗");reset($arr);while (list($key,$value) = each($arr)){echo $key.':'.$value.'</br>';}?>

如上代碼,數組遍曆的事情交給each函數。在使用while迴圈加list操作加each函數遍曆php數組的時候一定要注意:在while迴圈前,調用下reset函數,將數組指標指向第一個元素,不然,你會發現遍曆出來的元素不夠數目。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.