一、數(shù)組的概念
數(shù)組可以理解為有序的(鍵-值)對組成的數(shù)據(jù)值的集合;
如果我們把變量理解為單個值的容器,那么數(shù)組就是可以包含多個值得容器;
根據(jù)索引值的不同數(shù)組分為:索引數(shù)組和關(guān)聯(lián)數(shù)組;
二、數(shù)組的創(chuàng)建
1、使用array()函數(shù)
與其他語言的數(shù)組實(shí)現(xiàn)方式不同,php不需要在創(chuàng)建數(shù)組時(shí)指定其大??;
因?yàn)閜hp是一種松散類型的語言,所以甚至不需要在使用前先聲明;
索引可以是整形數(shù)字或者是字符串;
- 索引數(shù)組:索引為整數(shù),如果沒有指定索引值則默認(rèn)為零,依次遞增;
// 創(chuàng)建數(shù)組
$arr1 = array("a", "b", "c", "d", "e", "f"); // 索引數(shù)組
- 關(guān)聯(lián)數(shù)組:索引為字符串的數(shù)組
// 關(guān)聯(lián)數(shù)組
$arr2 = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4,
"five" => 5
);
2、直接對數(shù)組變量賦值$arr[key] = value;
// 索引數(shù)組
$arr1 = array("a", "b", "c", "d", "e", "f");
// 創(chuàng)建數(shù)組
$arr1[0] = "j"; // a將被j覆蓋
$arr1[] = "h";

如果方括號中沒有指定索引值,則取當(dāng)前最大整數(shù)索引值,新的鍵名將是該值加1。如果當(dāng)前還沒有整數(shù)索引,則鍵名將為0。如果指定的鍵名已有值了,該值將被覆蓋。
3、使用函數(shù)創(chuàng)建數(shù)組
range()建立一個包含指定范圍單元的數(shù)組
// 創(chuàng)建數(shù)組
$arr3 = range(-5, -15);
print_r($arr3)

三、數(shù)組的基本操作
unset($arr[0])刪除數(shù)組元素
print_r($arr)打印數(shù)組
count($arr)取得數(shù)組大小
in_array(10, $arr)檢查數(shù)組中是否包含某個值
// 索引數(shù)組
$arr1 = array("a", "b", "c", "d", "e", "f");
// 刪除數(shù)組元素
unset($arr1[0]);
// 打印數(shù)組
print_r($arr1);
echo "<br/>";
// 取得數(shù)組長度
echo count($arr1);
echo "<br/>";
// 檢查數(shù)組中是否包含某個值
echo in_array("b", $arr1);

四、遍歷數(shù)組
1、for 循環(huán)遍歷數(shù)組
// 索引數(shù)組
$arr1 = array("a", "b", "c", "d", "e", "f");
for ($i=0; $i < count($arr1) ; $i++) {
echo "<br/>".$arr1[$i];
};

2、foreach 循環(huán)遍歷數(shù)組
// 關(guān)聯(lián)數(shù)組
$arr2 = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4,
"five" => 5
);
// 遍歷數(shù)組
foreach ($arr2 as $key => $value) {
echo '$key ='.$key.'$value ='.$value."<br/>";
}

五、數(shù)組排序
按ASCII碼字符對照表進(jìn)行排序,包括字符串比較大小也是按此進(jìn)行比較。
1、sort()、rsort()對數(shù)組進(jìn)行升序和降序
2、ksort()、krsort()對數(shù)組按索引進(jìn)行升序和降序,并保持索引關(guān)系
$arr2 = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4,
"five" => 5
);
print_r($arr2);
// 降序
krsort($arr2);
print_r($arr2);
// 升序
sort($arr2);
print_r($arr2);

六、二維數(shù)組
數(shù)組元素的值也可以是數(shù)組;
遍歷二維數(shù)組;
$arr4 = array(
'fruit' => array('apple', 'orange'),
'vegetables' => array('tomatoes', 'radish'),
'flowers' => array('rose', 'lily')
);
// 遍歷二維數(shù)組
foreach ($arr4 as $key => $value) {
foreach ($value as $key1 => $value1) {
echo $value1."<br/>";
}
}

七、數(shù)組字符串轉(zhuǎn)換
1、explode()返回由字符串組成的數(shù)組,按某一字符進(jìn)行拆分。
2、implode() 將數(shù)組元素連接成字符串,按某一字符進(jìn)行拆分。
// 數(shù)組與字符串的裝換
$name = "ge bi lao wang";
echo $name;
// 字符串轉(zhuǎn)換為數(shù)組
$arr = explode(' ', $name);
print_r($arr);
// 將數(shù)組裝換為字符串
echo implode(' ', $arr);
