標籤:入棧 合并 res eve zhang logs 影響 function 連續
PHP數組中常用的函數:
1.//array_values — 返回數組中所有的值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_values($array); echo "<pre>"; print_r($tem); echo "</pre>";
輸出結果如下:
2.array_keys — 返回數組中部分的或所有的鍵名
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_keys($array); echo "<pre>"; print_r($tem); echo "</pre>";
輸出結果如下:
3.in_array — 檢查數組中是否存在某個值,返回布爾類型(bool)的值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= in_array("10",$array,false); echo "<pre>"; print_r($tem); echo "</pre>";
其中第三個參數預設false,如果存在則返回1,不存在,則沒有傳回值。如若設定成true,則會檢查類型是否相同,相當於“===” 的效果。
4.array_flip — 交換數組中的鍵和值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_flip($array); echo "<pre>"; print_r($tem); echo "</pre>";
輸出結果如下:
這裡需要注意$array 中的值需要能夠作為合法的鍵名,例如需要是 integer 或者 string。如果值的類型不對將發出一個警告,並且有問題的鍵/值對將不會翻轉。
如果同一個值出現了多次,則最後一個鍵名將作為它的值,所有其它的都丟失了。
5.array_reverse — 返回一個單元順序相反的數組,例如:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= array_reverse($array); echo "<pre>"; print_r($tem); echo "</pre>";
:
注意,如果這裡的第二個參數,設定為true,則會保留數位鍵。非數位鍵則不受這個設定的影響,總是會被保留。例:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= array_reverse($array,true); echo "<pre>"; print_r($tem); echo "</pre>";
這裡的第二個參數,設定為true,如所示:
6.count — 計算數組中的單元數目或對象中的屬性個數,例如:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= count($array); echo "<pre>"; print_r($tem); echo "</pre>";
這裡的$tem 就是數組的個數,個數為4;
7.array_count_values — 統計數組中所有的值出現的次數,例如:
$array = array("zhangsan",5,"10","sex"=>"man",5); $tem= count($array); echo "<pre>"; print_r($tem); echo "</pre>";
如所示:
8.array_unique — 移除數組中重複的值,接受 array 作為輸入並返回沒有重複值的新數組。 例如:
$array = array("zhangsan",5,"10","sex"=>"man",5); $tem=array_unique ($array); echo "<pre>"; print_r($tem); echo "</pre>";
如所示:
9.array_filter — 用回呼函數過濾數組中的單元 ,例如:過濾下面數組中小於3的數組。
$array = array(1,2,3,4,5); //回呼函數如下 function filter($val){ if($val>3){ return $val; } } //返回過濾後的數組。 $tem = array_filter($array,"filter"); echo "<pre>"; print_r($tem); echo "</pre>";
結果如所示:
10.array_walk — 使用使用者自訂函數對數組中的每個元素做回調處理。成功時返回 TRUE, 或者在失敗時返回 FALSE。
$array = array(1,2,3,4,5);
//回呼函數如下function walk($val){ $val=$val*$val;
//沒有傳回值}//使用自訂函數,讓每個元素做回調處理$tem = array_walk($array,"walk");echo "<pre>";print_r($tem);echo "</pre>";
11.array_map — 為數組的每個元素應用回呼函數
$array = array(1,2,3,4,5);
//回呼函數如下function map($val){ $val=$val*$val; return $val;//有傳回值}//使用自訂函數,讓每個元素做回調處理並組成一個新的數組$tem = array_map("map",$array);echo "<pre>";print_r($tem);echo "</pre>";
原來數組還存在,返回一個新的數組,返回結果如所示:
這裡array_map與array_walk 的區別,array_walk 是使數組裡的每個元素做回調處理,不傳回值;array_map是使數組裡的每個元素做回調處理,並返回一個新的數組。
12.sort — 對數組進行升序排序。sort() 例子
$array = array(10,2,13,4,50);
//對數組進行升序排序
$tem = sort($array);
echo "<pre>";
print_r($tem);//函數成功傳回值
echo "<br>";
//遍曆出排序後的數組
foreach ($array as $key => $val) {
echo "array [" . $key . "] = " . $val . "\n";
}
echo "</pre>";
成功時返回 TRUE, 或者在失敗時返回 FALSE。 如所示:
13.rsort — 對數組逆向排序(降序) rsort() 例子
$array = array(10,2,13,4,50);//對數組進行降序排序$tem = rsort($array);echo "<pre>";print_r($tem);//函數成功傳回值echo "<br>";//遍曆出排序後的數組foreach ($array as $key => $val) { echo "array [" . $key . "] = " . $val . "\n";
}
echo "</pre>";
成功時返回 TRUE, 或者在失敗時返回 FALSE。 如所示:
其他排序方式如所示:
14.array_slice — 從數組中取出一段 。array_slice 例子:
$array = array(10,2,13,4,50,15);
//截取索引為1開始截取長度為5的數組元素$tem = array_slice($array,1,5);echo "<pre>";print_r($tem);echo "</pre>";
如所示:
15.array_splice — 把數組中的一部分去掉並用其它值取代 。 array_splice 例子
$array = array(1,2,3,4,5);
//截取索引為2開始去掉1個長度的數組元素並用元素6來降3取代,注意array_splice的參數不能超過四個,如要添加更多元素,需要建立一個新的數組,將需要添加的元素放進新數組,
//再將新數組放入array_splice第四個參數即可
array_splice($array,2,1,6);
echo "<pre>";
print_r($array);
echo "</pre>";
結果如所示:
16.array_combine —(合并兩個數組) 建立一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值 。例子:
//數組1
$array = array(1,2,3,4);
//數組2$array2 = array("zhangsan","lisi","wangwu","zhaoli");
//合并數組$tem =array_combine($array,$array2);echo "<pre>";print_r($tem);echo "</pre>";
結果如:
17.array_merge — 合并一個或多個數組
//數組1$array = array(1,2,3,4);//數組2$array2 = array("zhangsan","lisi","wangwu","zhaoli");//合并數組$tem =array_merge($array,$array2);echo "<pre>";print_r($tem);echo "</pre>";
結果如:
18.array_intersect — 計算數組的交集。例子:
//數組1$array = array(1,2,3,4,5);//數組2$array2 = array(3,4,5,6,7);//交集$tem =array_intersect($array,$array2);echo "<pre>";print_r($tem);echo "</pre>";
結果如:
19.array_diff — 計算數組的差集。
注意,返回的是第一個數組當中與第二個數組當中不同的數值,不會返回第二個數組中的值。
例子:
//數組1$array = array(1,2,3,4,5);//數組2$array2 = array(3,4,5,6,7);//交集$tem =array_diff($array,$array2);echo "<pre>";print_r($tem);echo "</pre>";
:
20.array_pop — 將數組最後一個單元彈出(出棧)。返回最後一個值,注意:
返回 array 的最後一個值。如果 array 是空(如果不是一個數組),將會返回 NULL 。
$array = array(1,2,3,4,5);$tem =array_pop($array);echo "<pre>";print_r($tem);//返回最後一個值為5echo "</pre>";
21.array_push — 將一個或多個單元壓入數組的末尾(入棧) 。返回處理之後數組的元素個數。
$array = array(1,2,3,4,5);$tem =array_push($array,6);echo "<pre>";print_r($tem);//返回處理之後數組的元素個數。echo "</pre>";
22.array_shift — 將數組開頭的單元移出數組。注意,返回移出的值,如果 array 為 空或不是一個數組則返回 NULL。
$array = array(1,2,3,4,5);$tem =array_shift($array);echo "<pre>";print_r($tem);//返回移出的值為1
echo "</pre>";
23.array_unshift — 在數組開頭插入一個或多個單元
$array = array(1,2,3,4,5);$tem =array_unshift($array,22);echo "<pre>";print_r($tem);//返回數組的元素個數
echo "</pre>";
24.list();
//按索引角標順序來進行解構,但是角標必須從0開始,並且是連續的
//只對索引數組有效,當遇到關聯陣列會直接跳過
$array5 = array("name" => "zhangsan",0 => "lisi",1 =>"wangwu");list($a,$b) = $array5;echo $a." ".$b; //結果為lisi,wangwu
25.each();
//會返回第一個索引值對的一個數組(索引和關聯陣列的混合形式),
//當第二次調用是,遊標會自動到下一個,即第二個索引值對數組;
$array6 = array("name" => "fangming",0 => "18", "sex" => "man");$iem1 = each($array6);print_r($iem1);echo "<br>";$iem2 = each($array6);print_r($iem2);
26.list,each結合使用
list($a,$b) = each($array6);echo $a.":".$b."<br>";
27.利用while迴圈結合list,each進行遍曆
$array7 = array("name" => "fangming","age" => "18", "sex" => "man");while(list($a,$b) = each($array7)){ echo $a.":".$b."<br>";};
28.reset,重設數組,使遊標返回第一位
reset($array7);
php 數組常用函數