什麼是數組
實際上是一個有序映射。映射是一種把 values 關聯到 keys
傳統上把數組定義爲一組有某種共同特性的元素,如相似性,和類型,每個元素由一個特殊的
標識來區分,這稱爲key.
數組的類型
數值數組
帶有數字 ID 鍵的數組
$names = array("a","b","c");
關聯數組
數組中的每個 ID 鍵關聯一個值
$ages = array("a"=>20, "b"=>30, "c"=>40);
多維數組
包含一個或多個數組的數組
在多維數組中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數
組,以此類推
數組的構造
快速創建數組
PHP創建數組是不需要指定大小,也可以不用事先申明(PHP是鬆散型語言).
要引用樹組的元素,可以用一對中括號來指示.只需要建立引用就可以創建數組
如:
$array[0] = ‘a’;
然後可以如下輸出$array 第一個元素
echo $array[0];
接着我們可以映射更多的元素
$array[1] = ‘b’;
$array[2] = ‘c’;
….
$array[20] = ‘m’;
如果認爲索引是連續的,那可以省略索引
如:
$array[] = ‘b’;
$array[] = ‘c’;
….
$array[] = ‘m’;
數組的鍵名可以是整形數字,字符或字符串 索引數組(鍵名爲數字),關聯數組(字符或
數字混合)
如array(‘a’,’b’,’c’);
數組分類一維 ,二維 。。 。
一維數組只保存一列數據
$info[] = 'a',
$info[] = 'b';
$info[] = "a";
$info[] = "a";
$info[] = "a";
$info[] = "a";
$info[] = "a";
數組的遍歷方式 for,foreach while
var_dump($info);
for($i=0;$i<=7;$i++){
echo $info[$i];
}
Foreach($info as $key=>$value){
Echo ‘key=’.$key.” Val=”.$val;
}
快速創建數組 range(star,end,[step])
$testArray = range(a,z,1);
print_r($testArray);
爲數組追加數據
$testArray[] = "1";
array_push($testArray,'2','3','4');//追加到末尾
print_r($testArray);
修改數組內容
$testArray[1] = 'f';
$testArray = array_pad($testArray,5,'raojinpg');
//array_pad填補到數組的指定長度不修改原來的值
print_r($testArray);
訪問和處理數組
$array_sort = array("世界","area","深圳","shenzhen");//按ascii
$array_sort = array("1",34,5,6,76);//按大小
sort($array_sort);
print_r($array_sort);
//sort【數字索引】數字,英文 ,漢字
//$states = array('LN'=>"LIANLAO",'BJ'=>"beijing");
//關聯數組排序asort()按數組關聯型,ksort()按數組索引升序,krsort()按數組索引降序
數組隨機抽取 shuffle(),array_rand()
$rand_array = array(1,2,3,4,5,6,14,8,9,10,1,2,3,1);
shuffle($rand_array);//打亂排序
$rand_array = array_rand($rand_array,3);//隨機取數據 如果不帶範圍默認一個
print_r($rand_array);
print_r(array_count_values($rand_array));//統計數組中元素出現的次數
echo array_key_exists(14,$rand_array);//查詢 鍵名是否存在
echo in_array(10,$rand_array);//查詢值是否存在
echo array_sum($rand_array);求和
print_r(array_unique($rand_array));//去除數組中重複的元素
//移動數組內部指針
$zh_array = array("apple","orange","banana","yali");
echo current($zh_array);
echo next($zh_array);
echo prev($zh_array);
echo current($zh_array);
echo end($zh_array);
//取得關聯數組的鍵名
$states = array('LN'=>"LIANLAO",'BJ'=>"beijing");
print_r(key($states));//第一個
print_r(array_keys($states));//全部鍵名
print_r(array_values($states));//全部鍵值
is_array()//判斷數組的 類型
unset($array[0]);//刪除數組指定的元素
array_unshift($array,$value1,$value2..);//在數組的頂部插入數據
array_splice($array,$位子,長度,值)//刪除數組一部分元素並用其他值代替
$states = array('LN'=>"LIANLAO",'BJ'=>"beijing",'NJ'=>"beijing",'TJ'=>"beijing");
array_splice($states,2,1,"raojinpg");
print_r($states);
count($array);sizeof($array);//統計數組
array_flip($array);//鍵名和鍵值替換
array_pop($states);//刪除末尾元素
array_push();//追加到末尾
array_shift($states);//刪除首元素
array_unshift();//追加到開始
print_r($states);