php學習筆記7--php中的數組

來源:互聯網
上載者:User

標籤:

php中的數組

1.數組的定義:
顯式方式:$arr = array(1,2,3,4,5);
$arr1 = array(‘name‘=>‘dqrcsc‘,‘age‘=>‘24‘);
隱式方式:$arr[]=1;$arr[]=2;
注意:array() 是一個語言結構,用於字面上表示數組,不是常規的函數。

2.關於php數組的索引:
文法“index => values”,用逗號分開,定義了索引和值。索引可以是字串或數字。
如果省略了索引,會自動產生從 0 開始的整數索引。如果索引是整數,則下一個產生的索引將是目前最大的整數索引 + 1。
注意如果定義了兩個完全一樣的索引,則後面一個會覆蓋前一個。
此外,php數組的索引有如下轉換規則:
此外 key 會有如下的強制轉換:
1) 包含有合法整型值的字串會被轉換為整型。例如鍵名 "8" 實際會被儲存為 8。但是 "08" 則不會強制轉換,因為其不是一個合法的十進位數值。
2) 浮點數也會被轉換為整型,意味著其小數部分會被捨去。例如鍵名 8.7 實際會被儲存為 8。
3) 布爾值也會被轉換成整型。即鍵名 true 實際會被儲存為 1 而鍵名 false 會被儲存為 0。
4) Null會被轉換為空白字串,即鍵名 null 實際會被儲存為 ""。
5) 數組和對象不能被用為鍵名。堅持這麼做會導致警告:Illegal offset type。
<?php
$array = array(
1 => "a" ,
"1" => "b" , //索引轉換為整型的1
1.5 => "c" , //索引轉換為整型的1
true => "d" , //索引轉換為整型的1
);
var_dump ( $array );
?>
以上常式會輸出:
array(1) {
[1]=>
string(1) "d"
}

3.數組的遍曆:
count():返回數組元素的個數(長度)
1)使用for迴圈對索引數組進行遍曆:
$len = count($arr);
for($i=0; $i<$len; $i++){ $arr[$i]...}
2)使用foreach遍曆關聯陣列:
foreach(數組 as $value){
//使用$value當做當前元素的值
}
foreach(數組 as $key => $value){
//使用$key當做當前元素的下標
//使用$value當做當前元素的值
}
若在遍曆過程中要修改數組元素的值,可以使用&進行引用傳值:
foreach ( $arr as & $value ) {
$value = $value * 2 ;
}


3)數組指標:
每個數組都有一個指標(定位器),預設指向數組的第一個元素。如果在對數組進行遍曆,那麼該指標會在訪問指標當前所指向的元素
之後,向後移動,指向下一個元素的地址。遍曆完最後一個元素,指標會繼續下移,從而移出當前數組空間,再次對數組元素進行訪問
的時候,返回FALSE。

4)使用函數each()進行數組遍曆:
each():每次從數組中擷取當前數組指標所指向的元素,返回一個有四個元素的數組(關聯+索引),並且將數組的指標下移一位
list是一個文法結構,將得到的數組裡的元素,必須是以0開始的索引元素,對應的賦值給list所指定的變數裡。
文法:list($name,$age,$gender) = array(‘dqrcsc‘,24,‘男‘);
相當於$name = ‘dqrcsc‘;$age = 24; $gender = ‘男‘;
因為each返回的結果裡有兩個索引元素0和1,所以一般使用list與each進行配對使用

5)關於數組的常用函數:
key():擷取數組當前指標所指向元素的索引
current():擷取數組指標所指向的元素的值
next():返回數組當前指標所指向的下一個的元素的值,並指標下移一位
prev():返回當前指標所在位置的前一個元素的值,並且將指標向前移動一位
注意:如果當前指標已經在數組元素的最後一個元素,那麼next返回FALSE,指標依然下移一位,移出了數組;同樣的,當前指標已經在
數組元素的第一個元素,那麼使用prev將會將數組的指標移出數組,返回FALSE。next()和prev()都無法將移出數組的指標再拉回到合
法的位置。
以下兩個函數可用於重設數組指標:
reset():重設數組的指標,讓數組指標指向第一個元素,如果成功返回第一個元素的值,失敗返回FALSE
end():擷取數組元素最後一個元素的值,指標也會指向最後一個元素
注意:如果數組第一個元素被刪除,那麼指標重設之後,是第二個元素(從第一個有效元素開始)。
array_keys():擷取數組的所有下標,返回一個索引數組,數組元素的值都是目標數組的下標
array_values():擷取數組所有的值,返回一個索引數組
array_push():從數組的尾端加入一個元素(類比入棧)
array_pop:從數組的尾端彈出一個元素(類比出棧)
array_shift:從數組頭部將數組元素移出(類比出隊)
array_unshift:從數組的頭部插入資料(類比入隊)
數組與字串之間的轉換:
explode():將字串按照指定的分隔字元分解成一系列小的字串,都成為數組的一個元素
implode():將一個數組裡的所有的元素按照某個分隔字元進行拼接,變成一個字串
range():按照ASCII碼能夠指定範圍,自動產生數組元素的函數
array_rand():從數組中隨機取出指定個數的元素下標
shuffle():將原來的數組裡的元素打亂
數組的合并:+和array_merge()
+:儲存第一個數組的所有元素,如果後面的數組的元素與前面數組的元素的下標相同,那麼就忽略,如果不同則加到第一個數組裡,
最終返回一個數組
array_merge():先保留第一個數組的所有元素,如果後面數組的元素與前面數組的元素關聯下標相同則用後面數組的元素覆蓋前面的
;如果是索引下標,直接添加到第一個數組後面,重設索引。

php學習筆記7--php中的數組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.