PHP數組: 創建定義數組: 數值數組: array():定義數組 如上array()函數定義的內容會以數組的形式傳給變數Array 自動分配ID鍵: 手工分配ID鍵: count():獲取數組長度 count()函數返回數組的長度 關聯數組:帶有指定鍵的數組,每個鍵關聯一個值(類似鍵值對) 多維數 ...
PHP數組:
創建定義數組:
數值數組:
array():定義數組
$Array = array("Ubantu","CetOS","Kali");
如上array()函數定義的內容會以數組的形式傳給變數Array
自動分配ID鍵:
$Array = array("Ubantu","CetOS","Kali");
手工分配ID鍵:
$Array[0]="Kali"; $Array[1]="CetOS"; $Array[2]="Ubantu";
count():獲取數組長度
count($Array);
count()函數返回數組的長度
關聯數組:帶有指定鍵的數組,每個鍵關聯一個值(類似鍵值對)
多維數組:每一個數組值中包含另外一個或多個數組
關聯數組:
創建方法
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
or
$Array["A"]="Kali";
$Array["B"]="CetOS";
$Array["C"]="Ubantu";
多維數組:
- 定義:一個數組中的值可能是另外一個數組,以此類推……
<?php
$cars = array (
array("CN","+86","中國"),
array("US","+1","美國"),
array("TH","+66","泰國")
);
?>
數組遍歷或輸出:
遍曆數值數組:
<?php
$Array = array("Ubantu","CetOS","Kali");
$x = 0 ;
while ($x < count($Array)) {
// (迴圈)遍歷輸出Array數組,利用count()函數控制迴圈
echo $Array[$x++]."<br />" ;
}
?>
遍歷關聯數組:
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
// 使用“鍵”來輸出數組的 value
echo $Array["A"]."<br />".$Array["B"]."<br />".$Array["C"]."<br />" ;
?>
數組排序:
sort():升序
<?php
$Array = array("Ubantu","CetOS","Kali");
sort($Array);
?>
sort()函數的語法:
sort(array,sortingtype);
-
0 = SORT_REGULAR(預設) :把每一項按常規(ASCII)順序排序
1 = SORT_NUMERIC:把每一項按數字進行處理
2 = SORT_STRING:把每一項按字元串進行處理
3 = SORT_LOCALE_STRING:按字元串處理
rsort():降序
<?php
$Array = array("Ubantu","CetOS","Kali");
rsort($Array);
?>
asort():關聯數組key升序
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
asort($Array);
?>
根據關聯數組中的key進行數組升序
ksort():關聯數組value升序
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
ksort($Array);
?>
arsort():關聯數組key降序
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
arsort($Array);
?>
krsort():關聯數組value降序
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
krsort($Array);
?>
array_multisort():多維數組排序
array_multisort()函數可以用來排序多維數組或者一次排序多個數組
<?php
$cars = array (
array("CN","+86","中國"),
array("US","+1","美國"),
array("TH","+66","泰國")
);
array_multisort($cars);
?>
函數會根據每一個數組的第一個元素(cars[x] [0])進行排序操作;
函數預設是進行升序排序,同時函數也接受第二個參數指定排序方法:SORT_ASC(升序)、SORT_DESC(降序)
usort():用戶自定義排序
實現自定義排序方法,就需要使用函數:usort() 告訴PHP如何對排序對象進行比較
PHP內置了比較函數:compare(),用戶自定義排序方法需要覆寫PHP的比較函數
function compare($x , $y) {
if ($x[1] == $y[1]){
return 0;
} else if ($x[1] < $y[1]) {
return -1 ;
} else {
return 1 ;
}
}
usort($cars,'compare');
通過覆寫compare()函數,比較x和y兩個數組;該函數的最主要的作用就是比較兩個值的大小;調用usort()函數自定義排序,(usort()函數希望排序數組$cars數組並指定比較操作compare()函數);usort()函數則根據compare()比較函數返回的結果進行排序操作;同樣ursort()函數則是按照降序進行排序或者是將比較函數的返回值規則進行修改。
uasort():key排序
uksort():value排序
usort():排序
shuffle():隨機排序
<?php
$Array = array("Ubantu","CetOS","Kali");
shuffle($Array);
?>
array_reverse():逆向排序
<?php
$Array = array("Ubantu","CetOS","Kali");
shuffle($Array);
$Array = array_reverse($Array);
?>
函數會將數組逆向然後將數組逆向後的結果拷貝給變數,不會改變原有數組變數內容
explode():設置分隔符
主要是將大量的字元串按照規定的分隔符,單一存入數組中
array explode(string separator , string string [, int limit]);
第一個參數是指定的分隔符,第二個參數是字元串內容(數組中的字元串)
<!DOCTYPE html>
<html>
<body>
<?php
$Array = array();
$File = file("file.txt");
$Size = count($File);
for ($i=0; $i < $Size; $i++) {
$Array = explode("0", $File[$i]);
}
print_r($Array);
?>
</body>
</html>
intval():字元數字轉為數字
數組瀏覽:
current():返回數組中當前元素
reset():返回第一個元素(key)
end():返回最後一個元素(key)
each():前移一位指針並返回元素(value)
next():後移一位指針並返回元素(value)
pos()/prev():當前指針往回移一個位置然後返回元素
數組元素引用函數:
array_walk():
<?php
$Array = array("Ubantu","CetOS","Kali");
function my_print($value){
echo "$value<br />" ;
}
array_walk($Array, 'my_print');
?>
上述代碼通俗解釋:array_walk()函數將為數組的每一個元素去調用my_print函數,並將元素傳給函數參數
數組統計:
count():返回數組元素數量
sizeof():返回數組元素數量
array_count_values():統計特定值在數組中出現的次數
<?php
$Array = array(4,5,2,3,5,6,3,7,2,4,7,4,2,7,3,3,3,7,3,2);
$sum = array_count_values($Array);
print_r($sum);
?>
數組sum將會接收函數返回的結果,結果是由Array數組中的特定值的次數組成的鍵值對(關聯數組)特定值作為key,出現次數作為value
數組轉為標量變數:extract()
對於一個非數字索引的數組,會出現非常多的鍵值對,使用extract()函數可以將key變為一個標量變數,由此可以通過訪問變數的方式訪問key對應的value
extract(array var_array [, int txtract_type] [, string prefix]);
函數的作用就是通過一個數組拆個年間一系列的標量變數,這些標量就是數組中的key,而變數就是數組中key對應的value
<?php
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
extract($Array);
echo "$A $B $C";// 輸出結果: Ubantu CetOS Kali
?>
另外參數extract會告訴函數如何處理與已有函數的衝突問題;而prefix參數則是應用到一個函數當中