1. 程式人生 > >第六招 PHP之陣列

第六招 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的陣列。