亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php學習筆記 數組的聲明與遍歷

2024-09-04 11:45:57
字體:
來源:轉載
供稿:網友

在php中數組是一個非常重要的數據存儲類型,本文章主要是介紹了數據創建與數組刪除及遍歷查詢數據值輸出,下面一起來看看。

數組的聲明

1、直接賦值的方式聲明數組

$數組變量名[索引值] = 資料內容 //其中索引值(下標)可以是一個字符串或數字

但有的時候,我們也可以直接給數組賦值,并不填寫“索引值”,那第此時,數組的下標就會自動以數字0開始增加。

$數組變量名[] = 資料內容 //其中索引值(下標)可以是一個字符串或數字

2、使用array()語言結構新建數組

在實際使用中我們可以用array()語言結構來新建一個數組,并初始化數組。

$數組變量名=array( key1 => value1, key2 => value2, ...... ,keyN => valueN );

當然,像上面我們并不一定就這樣,我們有的時候會像下面這樣來做:(區別在于索引值為數字)

$數組變量名=array( value1, value2, ...... , valueN );

3、多維數組的聲明

多維數組其實也就是在數組里面再次存放數組。如下:

  1. $content = array ( 
  2. array(1,'高某','A公司','北京市'), 
  3. array(2,'高某1','B公司','北京市'), 
  4. array(3,'高某','C公司','北京市'
  5. ); 

數組的遍歷

1、使用for語句循環遍歷數組

在其它的編程語言中,數組的遍歷通常都是使用for循環語句,通過數組的下標來訪問數組中每個成員元素,但要求數組的下標必須是連續的數字索引。而在PHP中,不僅可以指定非連續的數字索引值,而且還存在以字符為下標的關聯數組。所以在PHP中,其實是很少使用for語句來遍歷數組。下面來曬一個例子給大家看一下,大家應該不會陌生,實例代碼如下:

  1. <?php 
  2.    //使用array()語句將聯系人列表中第一條記錄聲明成一維數組$contact 
  3.    $contact=array(1,"高某","A公司","北京市","(015)9582451","gao@php.com"); 
  4.    //以表格的形式輸出一維數組中的每個元素 
  5.    echo '<table border="1" width="600" align="center">'//輸出<table>標記定義表格 
  6.    echo '<caption><h1>聯系人列表</h1></caption>'//輸出表頭 
  7.    echo '<tr bgcolor="#dddddd">'//輸出表格的行開始,背景為灰色 
  8.      
  9.    //以html的th標記輸出表格的字段名稱 
  10.    echo '<th>編號</th><th>姓名</th><th>公司</th><th>地址</th><th>電話</th><th>EMAIL</th>'
  11.    echo '</tr><tr>'
  12.    for($i=0;$i<count($contact);$i++){ //使用for循環來輸出一維數組中的元素 
  13.    echo '<td>'.$contact[$i].'</td>'
  14.    } 
  15.    echo '</tr></table>'//輸出表格的關閉標記 
  16.    ?> 

遍歷多維數組時,要使用循環嵌套逐層進遍歷。在此就不用代碼列出來了。

2、使用foreach語句遍歷數組

既然for循環語句在PHP中并不常用,那么就讓我們來看一下foreach到底有什么可取之處吧!

foreach語句有兩種語法格式,第二種比較次要但卻是第一種有用的擴展。

第一種語法格式:

  1. foreach(array_expression as $value ){ 
  2.   
  3. 循環體 
  4.   

第二種語法模式:

  1. foreach(array_expression as $key => $value){ 
  2.       
  3.     循環體 
  4.       
  5.     } 

3、聯合使用list()、each()、和while()、循環遍歷數組

each()函數

each()函數需要傳遞一個數組作為參數,返回數組中當前元素的鍵/值對,并向后移動數組指針到下一個元素的位置。鍵/值對被返回為帶有四個元素的關聯和索引混合的數組,鍵名分別為0、1、key和value。其中鍵名0和key對應的值是一樣的,是數組元素的鍵名,1和value則包含有數組元素的值。如果內部指針越過了數組的末端,則each()返回FALSE。each()函數的使用如下所示,代碼如下:

  1. <?php 
  2.     //聲明一個數組$contact作為each()函數的參數 
  3.     $contact=array("ID"=>1,"姓名"=>"高某","http://www.49028c.com公司"=>"A公司","地址"=>"北京市"); 
  4.       
  5.     $id=each($contact); //返回數組$contact中第一個元素的鍵/值對,是帶有4個元素的數組 
  6.     print_r($id); //返回數組$id:Array([1]=>1[value]=>1[0]=>ID[key]=>ID) 
  7.     $name=each($contact); //返回數組Rcontact中第二個元素的鍵/值對,是帶有4個元素的數組 
  8.     print_r($name); //返回數組$name:Array([1]=>高某 [value]=>高某 [0]=>姓名 [key]=>姓名) 
  9.     $company=each($contact); 
  10.     print_r($company); 
  11.     $address=each($contact); 
  12.     print_r($address); 
  13.     $no=each($contact); //已經到數組$contact的末端,返回false 
  14.     var_dump($no); //輸出$no的值:bool(false) 
  15.       
  16.     ?> 

list()函數

這不是真正的函數,而是PHP的語言結構。list()用一步操作給一組變量進賦值,即把數組中的值賦給一些變量。list()僅能用于數字索引的數組并假定數字索引從0開始。語法格式如下所示:

list(mixed varname,mixed ...)=array_expression //list()語句的語法格式

list()語句和其它函數在使用上有很大的區別,并不是直接接收一個數組作為參數。而是通過“=”去處符以賦值的方式,將數組中每個元素的值,對應的賦給list()函數中的每個參數。list()函數又將它中的每個參數轉換為直接可以在腳本中使用的變量。使用方法如下,實例代碼如下:

  1. <?php 
  2.     $info=array('coffee','brown','caffeine'); //聲明一個索引數組$info 
  3.       
  4.     list($drink,$color,$power)=$info//將數組中的所有元素轉為變量 
  5.     echo "$drink is $color and $power makes it special.n";//輸出的三個變量值是數組中三個元素的值 
  6.       
  7.     list($drink, ,$power)=$info//將數組中的部分元素變為變量 
  8.     echo "$drink has $power.n"//輸出的兩個變更值是數組中的前兩個元素的值 
  9.       
  10.     list(,,$power)=$info//跳過前兩個變量只將數組中第三個元素的值轉為變量 
  11.     echo "I need $power!n"//輸出的一個變量值是數組中桃花汛三個元素的值勤 
  12.     ?> 

通過上例了解list()函數的用法之后,將each()函數和list()函數結合起來使用。代碼如下:

  1. <?php 
  2.     $contact=array("ID"=>1,"姓名"=>"http://www.111Cn.Net","公司"=>"A公司","地址"=>"北京市"); 
  3.     list($key,$value)=each($contact); //將each()函數和list()函數聯合使用 
  4.     echo "$key=>$value"//輸出變量$key和$value,中間使用"=>"分隔 
  5. ?> 

while()循環遍歷數組

while()循環的語法格式如下:

  1. while( list($key,$value) = each(array_expressin) ){ 
  2. 循環體; 

使用這種組合改寫前面使用foreach遍歷過的一維數組,代碼如下所示:

  1. <?php 
  2.     //聲明一個一維的關聯數組$contact 
  3.     $contact=array("ID"=>1, 
  4.     "姓名"=>"高某"
  5.     "公司"=>"A公司"
  6.     "地址"=>"北京市"
  7.     "電話"=>"(010)987665432"
  8.     "EMAIL"=>"gao@php.com" 
  9.     ); 
  10.     //以HTML列表的方式輸出數組中每個元素的信息 
  11.     echo '<dl>一個聯系人信息:'
  12.     while(list($key,$value) = each($contact) ){ //將foreach語句改寫成while,list()和each()的組合 
  13.     echo "<dd>$key:$value</dd>"//輸出每個元素的鍵/值勤 
  14.     } 
  15.     echo '</dl>'
  16. ?> 

4、數組內部指針控制函數遍歷數組

對于數組指針的控制PHP提供了以下幾個內部函數可以利用。

》》current():是取得目前指針位置的內容資料

》》key():用來讀取目前指針所指向資料的索引值

》》next():將數組中的內部指針移動到下一個單無

》》prev():將數組的內部指針倒回一位

》》end():將數組的內部指針向最后一個元素

》》reset():將目前指針無條件移至第一個索引位置

這些函數的參數都只有一個,就是要操作的數組本身。在下面的示例中,將使用這些數組指針函數控制數組中元素的讀取順序,代碼如下所示:

  1. <?php 
  2.     //聲明一個一維的關聯數組$contact,使用"=>"去處符指定了每個元素的字符串下標 
  3.     $contact = array("ID"=>1, 
  4.     "姓名"=>"高某"
  5.     "公司"=>"A公司"
  6.     "地址"=>"北京市"
  7.     "電話"=>"(010)98765432"
  8.     "EMAIL"=>"gao@php.com" 
  9.     ); 
  10.     //數組剛聲明時,數組指針在數組中第一個元素位置 
  11.     //使用key()和current()函數傳入數組$contact,返回數組中當前元素的鍵和值 
  12.     echo '第一個元素:'.key($contact).'=>'.current($contact).'<br>'//輸出:第一個元素:ID=>1 
  13.     echo '第一個元素:'.key($contact).'=>'.current($contact).'<br>'//數組指針沒有移動,輸出同上 
  14.       
  15.     next($contact); //將數組$contact中的指針向一個元素移動一次,指向第二個元素的位置 
  16.     next($contact); //將數組$contact中的指針向一個元素移動一次,指向第三個元素的位置 
  17.     echo '第三個元素:'.key($contact).'=>'.current($contact).'<br>'//輸出第三個元素的鍵和值 
  18.       
  19.     end($contact); //再將數組$contact中指針移動到最后,指向最后一個元素 
  20.     echo '最后一個元素:'.key($contact).'=>'.current($contact).'<br>'//輸出最后一個元素的鍵和值 
  21.       
  22.     prev($contact); //將數組$contact中的指針倒回一位,指向最后第二個元素 
  23.     echo '最后第二個元素:'.key($contact).'=>'.current($contact).'<br>'//輸出最后第二個元素的鍵和值 
  24.       
  25.     reset($contact); //再將數組$contact中的指針重置到第一個元素的位置,指向第一個元素 
  26.     echo '又回到了第一個元素'.key($contact).'=>'.current($contact).'<br>'//輸出第一個元素的鍵和值 
  27.     ?> 

數據排序

•sort() 函數用于對數組單元從低到高進行排序。

•rsort() 函數用于對數組單元從高到低進行排序。

•asort() 函數用于對數組單元從低到高進行排序并保持索引關系。

•arsort() 函數用于對數組單元從高到低進行排序并保持索引關系。

•ksort() 函數用于對數組單元按照鍵名從低到高進行排序。

•krsort() 函數用于對數組單元按照鍵名從高到低進行排序。

例子代碼如下:

  1. <?php 
  2. $arr = array("b""a""c"); 
  3. sort($arr); 
  4. print_r($arr); 
  5. ?> 
  6. //運行該例子輸出: 
  7. //Array ( [0] => a [1] => b [2] => c ) 

在本例中, $arr 數組單元被按照字母順序排序,而數組單元經過排序后,鍵值重新分配。

rsort()

PHP rsort() 函數行為與 sort() 相反,對數組單元進行由高到低排序,請參考 sort() 函數使用。

asort()

PHP asort() 函數用于對數組單元從低到高進行排序并保持索引關系,如果成功則返回 TRUE,失敗則返回 FALSE。

語法:bool asort( array &array [, int sort_flags] )

可選參數 sort_flags 用以改變排序的行為,具體參見 sort()。

實例代碼如下:

  1. <?php 
  2. $arr = array("b""a""c"); 
  3. asort($arr); 
  4. print_r($arr); 
  5. ?> 
  6. //運行該例子輸出: 
  7. //Array ( [1] => a [0] => b [2] => c ) 
注:本文內容參考于《細說PHP》中的數組部分,僅作學習之余的個人筆記。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清日韩电视剧大全免费播放在线观看| 米奇精品一区二区三区在线观看| 亚洲一级一级97网| 奇米一区二区三区四区久久| 亚洲精品久久久久久下一站| 中文精品99久久国产香蕉| 精品国产欧美一区二区三区成人| 国内外成人免费激情在线视频| 欧美性猛交xxxx免费看漫画| 精品国产乱码久久久久酒店| 欧美黑人狂野猛交老妇| 国产精品福利网站| 精品亚洲国产视频| 国产精品jizz在线观看麻豆| 亚洲精品www久久久| 在线免费观看羞羞视频一区二区| 成人精品一区二区三区电影免费| 色综合久久中文字幕综合网小说| 久久久久久久香蕉网| 在线视频日本亚洲性| 日韩视频永久免费观看| 国产在线视频91| 日韩va亚洲va欧洲va国产| 日日噜噜噜夜夜爽亚洲精品| 国产精品第七十二页| 亚洲无亚洲人成网站77777| 亚洲精品综合精品自拍| 日韩在线观看免费av| 26uuu日韩精品一区二区| 亚洲精品美女久久久| 日韩亚洲欧美中文在线| 亚洲激情国产精品| 国产91久久婷婷一区二区| 午夜精品国产精品大乳美女| 欧美高清性猛交| 超薄丝袜一区二区| 午夜精品在线观看| 欧美另类在线播放| 亚洲人线精品午夜| 亚洲专区中文字幕| 亚洲精品国产电影| 国模吧一区二区| 中文亚洲视频在线| 国产精品日韩av| 国产欧美中文字幕| 亚洲一区二区三区乱码aⅴ蜜桃女| 91干在线观看| 亚洲美腿欧美激情另类| 色哟哟网站入口亚洲精品| 国产午夜精品麻豆| 亚洲一区精品电影| 久热精品视频在线免费观看| 国产精品亚洲精品| 亚洲黄色av女优在线观看| 久久99精品视频一区97| 日本精品久久中文字幕佐佐木| 久久精品视频99| 久久久免费精品视频| 91人成网站www| 亚洲人成电影网站色…| 69国产精品成人在线播放| 欧美日韩美女在线观看| 国产精品自产拍在线观| 亚洲精品日韩av| 欧美激情精品在线| 国产精品视频久久久久| 亚洲国产精品久久91精品| 日韩在线观看你懂的| 69av在线视频| 欧美精品在线第一页| 性色av一区二区三区免费| 欧美激情中文字幕在线| 欧美理论电影在线播放| 国产99久久精品一区二区| 久久视频在线看| 国产精品久久久久久亚洲影视| 日韩精品黄色网| 91免费精品视频| 亚洲影影院av| 中文字幕在线看视频国产欧美在线看完整| 91精品久久久久久久久久入口| 色噜噜狠狠色综合网图区| 亚洲最新视频在线| 亚洲激情久久久| 最近2019中文字幕mv免费看| 亚洲白拍色综合图区| 色狠狠久久aa北条麻妃| 国产自产女人91一区在线观看| 日韩精品极品在线观看| 欧美大成色www永久网站婷| 亚洲国产另类 国产精品国产免费| 一级做a爰片久久毛片美女图片| 欧美一级成年大片在线观看| 亚洲人成电影网站色…| 亚洲欧美制服另类日韩| 成人妇女淫片aaaa视频| 亚洲综合精品伊人久久| 久久99精品久久久久久琪琪| 欧美激情精品久久久久久久变态| 日本欧美一二三区| 国产精品日日做人人爱| 欧美成人精品在线播放| 亚洲欧美日韩图片| 亚洲性xxxx| 国产精品激情自拍| 国产精品亚洲综合天堂夜夜| 午夜精品美女自拍福到在线| 国产91网红主播在线观看| 欧美高清在线观看| 国产一区二区黄| 亚洲性线免费观看视频成熟| 欧美极品少妇xxxxⅹ免费视频| 欧美亚洲国产视频| 性亚洲最疯狂xxxx高清| 亚洲老头老太hd| 亚洲va欧美va国产综合久久| 欧洲精品毛片网站| 亚洲bt天天射| 97视频在线观看成人| 97精品伊人久久久大香线蕉| 久久久久久国产精品久久| 日本高清不卡的在线| 国产一区二区久久精品| 欧美在线视频一区二区| 久久国产一区二区三区| 日本一区二区在线播放| 亚洲精品国产精品国自产观看浪潮| 91中文字幕在线| 色偷偷噜噜噜亚洲男人| 久久免费少妇高潮久久精品99| 在线观看久久av| 亚洲18私人小影院| 欧美成人午夜视频| 久久九九精品99国产精品| 91精品久久久久久久久久久| 午夜精品国产精品大乳美女| 国产日韩精品在线观看| 亚洲的天堂在线中文字幕| 麻豆一区二区在线观看| 亚洲欧美综合精品久久成人| 久久琪琪电影院| 国产丝袜高跟一区| 亚洲护士老师的毛茸茸最新章节| 久久久伊人欧美| 91精品国产91久久久| 欧美天堂在线观看| 色婷婷综合久久久久| 在线视频欧美日韩| 亚洲香蕉伊综合在人在线视看| 国产精品久久久久一区二区| 久久影视三级福利片| 亚洲色图狂野欧美| 国内精品免费午夜毛片| 国产一区二区欧美日韩| 亚洲网在线观看| 国产精品xxx视频| 国产精品视频在线观看| 国产精品久久一区| 亚洲精美色品网站| 国产精品pans私拍| 日韩日本欧美亚洲| 粉嫩老牛aⅴ一区二区三区| 日本欧美爱爱爱| 亚洲成人亚洲激情|