第六招 PHP之陣列
陣列型別
關聯陣列
關聯陣列的鍵值由字串或字串和數字組合。
<?php
$students=['student1'=>'brell','student2'=>'lwqbrell'];
var_dump($students);
?>
索引陣列
索引陣列的鍵值由數字組成,在沒有指定鍵值得情況下,預設為索引陣列。
<?php
$students=['brell','lwqbrell'];
var_dump($students);
?>
二維陣列
將兩個一維陣列組合起來便可形成二維陣列(在一維數組裡巢狀一維陣列),二維陣列很重要,在日常的開發過程中我們會經常使用到二維陣列。可以使用array()來定義,也可以使用方括號[ ]來定義。
<?php
$score=array(
'math'=>array(88,86,97),
'chinese'=>array(88,93,97),
'english'=>array(88,86,97)
);
var_dump($score);
?>
<?php
$score=[
'math'=>[88,86,97],
'chinese'=>[88,93,97],
'english'=>[88,86,97]
];
var_dump($score);
?>
陣列的基本操作
陣列大小
int count ( mixed $array_or_countable
[, int $mode
= COUNT_NORMAL ] )
count — 計算陣列中的單元數目,或物件中的屬性個數
array_or_countable
陣列或者 Countable 物件。
mode
如果可選的 mode 引數設為 COUNT_RECURSIVE(或 1),count() 將遞迴地對陣列計數。對計算多維陣列的所有單元尤其有用。
<?php $score=[ 'math'=>[88,86,97], 'chinese'=>[88,93,97], 'english'=>[88,86,97] ]; $len=count($score); echo $len; ?>
陣列轉字串
string implode ( string $glue
, array $pieces
)
glue
預設為空的字串。
pieces
你想要轉換的陣列
<?php
$programming=['C language','Java','PHP','C#'];
echo implode(',', $programing);
?>
陣列指標
mixed current ( array &$array
)
current — 返回陣列中的當前單元
mixed end ( array &$array
)
end — 將陣列的內部指標指向最後一個單元
mixed prev ( array &$array
)
prev — 將陣列的內部指標倒回一位
mixed reset ( array &$array
)
reset — 將陣列的內部指標指向第一個單元
mixed next ( array &$array
)
next — 將陣列中的內部指標向前移動一位
陣列排序與打亂
bool sort ( array &$array
[, int $sort_flags
= SORT_REGULAR ] )
array
要排序的陣列。
sort_flags
可選的第二個引數 sort_flags 可以用以下值改變排序的行為:
排序型別標記:
SORT_REGULAR - 正常比較單元(不改變型別)
SORT_NUMERIC - 單元被作為數字來比較
SORT_STRING - 單元被作為字串來比較
SORT_LOCALE_STRING - 根據當前的區域(locale)設定來把單元當作字串比較,可以用 setlocale() 來改變。
SORT_NATURAL - 和 natsort() 類似對每個單元以“自然的順序”對字串進行排序。 PHP 5.4.0 中新增的。
SORT_FLAG_CASE - 能夠與 SORT_STRING 或 SORT_NATURAL 合併(OR 位運算),不區分大小寫排序字串。
bool asort ( array &$array
[, int $sort_flags
= SORT_REGULAR ] )
asort — 對陣列進行排序並保持索引關係
array
輸入的陣列。
sort_flags
可以用可選的引數 sort_flags 改變排序的行為
bool arsort ( array &$array
[, int $sort_flags
= SORT_REGULAR ] )
arsort — 對陣列進行逆向排序並保持索引關係
bool rsort ( array &$array
[, int $sort_flags
= SORT_REGULAR ] )
rsort — 對陣列逆向排序
bool shuffle ( array &$array
)
隨機排列單元的順序一個數組
陣列遍歷
for遍歷陣列
<?php
$fruit=['apple','banana','orange'];
for ($i=0; $i <count($fruit) ; $i++) {
echo $fruit[$i];
};
?>
foreach遍歷陣列
<?php
$score=[
'math'=>86,
'chinese'=>93,
'english'=>97
];
foreach ($score as $key => $value) {
echo $key.':'.$value;
}
?>
系統預定義的陣列
$_SERVER:http://php.net/reserved.variables.server
$_GET:所傳遞的內容會直接顯示在瀏覽器的位址列
$_POST:所傳遞的內容進行加密後新增到header進行傳遞。
$_FILE:獲取通過POST方法上傳檔案的相關資訊。
$_SESSION:會話變數的相關資訊。
$_COOKIE:儲存cookie值
$_REQUEST:包含了$_GET、$_POST、$_COOKIE的陣列。