在php中用三種數組分別是數值數組,關聯數組,多維數組那么它們三種的用法有一點不同,下面我們來看看吧.
數值數組:數值數組存儲的每個元素都帶有一個數字 ID 鍵,可以使用不同的方法來創建數值數組.
例子1,在這個例子中,會自動分配 ID 鍵,代碼如下:
$names = array("Peter","Quagmire","Joe");
例子 2,在這個例子中,我們人工分配的 ID 鍵,代碼如下:
- $names[0] = "Peter";
- $names[1] = "Quagmire";
- $names[2] = "Joe";可以在腳本中使用這些 ID 鍵:
- <?php
- $names[0] = "Peter";
- $names[1] = "Quagmire";
- $names[2] = "Joe";
- echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
- ?>
數組排序
(1)sort(array $array[,int sorttype])
array 表示一個數組
sorttype 取值:SORT_REGULAR - 默認,以它們原來的類型進行處理(不改變類型),SORT_NUMERIC - 把值作為數字來處理,SORT_STRING - 把值作為字符串來處理 ,SORT_LOCALE_STRING - 把值作為字符串來處理,基于本地設置.
(2)bool rsort(array $array[,sorttype])函數,逆向排序(值逆向),sorttype 同上
(3)bool shuffle()函數,隨機排序
(4)array array_reverse (array $array[,bool preserve_keys]) 反向排列,preserve_keys 為true時 保留原來的鍵名
(5)array array_merge()合并數組
(6)array array_slice(array $array,int offset[,int length[,boolpreserve_keys ])
offset非負,這array中的偏移變量從此開始,為負時從末端開始,length為正時,則表示序列中有很多單元,為負時表示從末端開始第幾個數處結束,若省略則從offset開始一直到最后,boolpreserve_keys 同上.
數組循環輸出,代碼如下:
- <?php
- $shuzu=array('a'=>"wo",'b'=>"ni",'c'=>"ta",'d'=>"php",'e'=>"mysql");
- echo "使用foreach函數遍歷數組";
- echo "<br/>$nbsp;<br/>";
- foreach($shuzu as $key=>$value)
- {
- echo "$key 代表: $value";
- echo "<br/>$nbsp;<br/>";
- }
- ?>
關聯數組
關聯數組,它的每個 ID 鍵都關聯一個值,在存儲有關具體命名的值的數據時,使用數值數組不是最好的做法,通過關聯數組,我們可以把值作為鍵,并向它們賦值.
例子1,在本例中,我們使用一個數組把年齡分配給不同的人,代碼如下:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
例子 2,本例與例子 1 相同,不過展示了另一種創建數組的方法,代碼如下:
- $ages['Peter'] = "32";
- $ages['Quagmire'] = "30";
- $ages['Joe'] = "34";可以在腳本中使用 ID 鍵:
- <?php
- $ages['Peter'] = "32";
- $ages['Quagmire'] = "30";
- $ages['Joe'] = "34";
- echo "Peter is " . $ages['Peter'] . " years old.";
- ?>
- //以上腳本的輸出:
- //Peter is 32 years old.
關聯數組判斷為空的代碼,然后我們詳細講講關于數據空的處理,代碼如下:
- <?php
- $array = array(0);
- if(emptyempty($array)){
- echo "我空了n";
- }else{
- echo "我不空啊n";
- }
- $array['array']='我是數組';
- print_r($array);
- $array['array1']='我是數組1';
- print_r($array);
- unset($array['array1']);
- print_r($array);
- ?>
遍歷:遍歷用戶列表的時候,只需直接用 isset 查詢那個用戶名是否存在即可,PHP 版代碼如下:
- <?php
- $arrayHash = array();
- foreach($arrayN as $nameN) {
- // 本行執行了 N 次。
- $arrayHash[$nameN] = 1;
- }
- foreach($arrayM as $keyM => $nameM) {
- if (isset($arrayHash[$nameM])) {
- // 本行執行了 M 次!
- unset($arrayM[$keyM]);
- }
- }
- return $arrayM;
- ?>
多維數組:在多維數組中,主數組中的每個元素也是一個數組,在子數組中的每個元素也可以是數組,以此類推.
例子 1,在本例中,我們創建了一個帶有自動分配的 ID 鍵的多維數組,代碼如下:
- $families = array
- (
- "Griffin"=>array
- (
- "Peter",
- "Lois",
- "Megan"
- ),
- "Quagmire"=>array
- (
- "Glenn"
- ),
- "Brown"=>array
- (
- "Cleveland",
- "Loretta",
- "Junior"
- )
- );
- /*
- 如果輸出這個數組的話,應該類似這樣:
- Array
- (
- [Griffin] => Array
- (
- [0] => Peter
- [1] => Lois
- [2] => Megan
- )
- [Quagmire] => Array
- (
- [0] => Glenn
- )
- [Brown] => Array
- (
- [0] => Cleveland
- [1] => Loretta
- [2] => Junior
- )
- )*/
例子 2,讓我們試著顯示上面的數組中的一個單一的值,代碼如下:
- echo "Is " . $families['Griffin'][2] .
- " a part of the Griffin family?";
- //以上代碼的輸出:
- //Is Megan a part of the Griffin family?
數組排序,代碼如下:
- <?php
- $array[] = array("age"=>20,"name"=>"li");
- $array[] = array("age"=>21,"name"=>"ai");
- $array[] = array("age"=>20,"name"=>"ci");
- $array[] = array("age"=>22,"name"=>"di");
- foreach ($array as $key=>$value){
- $age[$key] = $value['age'];
- $name[$key] = $value['name'];
- }
- array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
- print_r($array);
- ?>
新聞熱點
疑難解答