數(shù)組的相關(guān)處理函數(shù)
1.數(shù)組的鍵/值操作函數(shù)
2.統(tǒng)計數(shù)組元素的個數(shù)與唯一性
3.使用回調(diào)函數(shù)處理數(shù)組的函數(shù)
4.數(shù)組的排序函數(shù)
5.拆分、合并、分解與結(jié)合數(shù)組
6.數(shù)組與數(shù)據(jù)結(jié)構(gòu)
7.其他有用的數(shù)組處理函數(shù)
array_values 返回數(shù)組中所有的值
array_keys 返回數(shù)組中所有鍵名
<?php
// array_values 返回數(shù)組中所有的值
// array_keys 返回數(shù)組中所有鍵名
$lamp=array("os"=>"linux","webserver"=>"Apache","num"=>10,"aa"=>"10","ws"=>"Apache","db"=>"MySQL","language"=>"PHP");
print_r($lamp);
echo '<br>';
//輸出下標(biāo)連續(xù)的索引數(shù)組
// $arr=array_values($lamp);
//
// print_r($arr);
// echo '<br>';
//用list()遍歷
// list($os,$webserver,$db,$language)=array_values($lamp);
//
// echo $os."<br>";
// echo $webserver."<br>";
// echo $db."<br>";
// echo $language."<br>";
// print_r(array_keys($lamp)); 全部返回所有鍵名
//只返回指定值得鍵名
// print_r(array_keys($lamp,"Apache"));
//加true尋找需要類型栅葡、內(nèi)容都要相等
print_r(array_keys($lamp,"10",true));
in_array 檢查數(shù)組中是否存在某個值
<?php
//in_array 檢查數(shù)組中是否存在某個值
$lamp=array("os"=>"linux",array("a","b"),"webserver"=>"Apache","num"=>11,"aa"=>"10","ws"=>"Apache","db"=>"MySQL","language"=>"PHP","hello"=>null);
print_r($lamp);
echo '<br>';
//加true可以查詢數(shù)組旋炒,數(shù)組必須是順序一致,類型脆淹,內(nèi)容一致才行
if (in_array(array("a","b"),$lamp,true)) {
echo "在數(shù)組中";
}else{
echo "不在數(shù)組中";
}
// array_search 在數(shù)組中搜索給定的值常空,如果成功則返回相應(yīng)的鍵名
echo array_search("MySQL",$lamp);
//array_key_exists 判斷鍵是否存在
echo array_key_exists("MySQL",$lamp);
//isset 判斷是否存在,空值判斷不了,用array_key_exists判斷
if (isset($lamp['hello'])) {
echo "在數(shù)組中";
}else{
echo "不在數(shù)組中";
}
array_flip 交換數(shù)組中的鍵和值,下標(biāo)如果重復(fù)盖溺,后面覆蓋前邊的
<?php
// array_flip 交換數(shù)組中的鍵和值,下標(biāo)如果重復(fù)窟绷,后面覆蓋前邊的
$lamp=array("os"=>"linux","webserver"=>"Apache");
print_r($lamp);
echo '<br>';
// $arr=array_flip($lamp);
// print_r($arr);
//array_reverse 返回一個單元順序相反的數(shù)組,加true保留原來的鍵值
$arr=array_reverse($lamp);
print_r($arr);
count 計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)
strlen 計算字符串長度
<?php
$lamp=array("os"=>"linux","webserver"=>"Apache");
print_r($lamp);
echo '<br>';
// count 計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)
// strlen 計算字符串長度
echo count($lamp);
$web=array(
"lamp"=>array("os"=>"linux","webserver"=>"Apache","db"=>"MySQL","language"=>"PHP"),"javaEE"=>array("os"=>"Unix","webserver"=>"Tomcat","db"=>"Oracle","language"=>"JSP")
);
echo count($web,1);
//array_count_values 統(tǒng)計數(shù)組中所有的值出現(xiàn)的次數(shù),如果出現(xiàn)重復(fù)咐柜,取第一個
$lam=array("os"=>"linux","linux","Linux","webserver"=>"Apache");
print_r($lam);
echo '<br>';
print_r(array_count_values($lamp));
array_filter 用回調(diào)函數(shù)過濾數(shù)組中的單元
<?php
//array_filter 用回調(diào)函數(shù)過濾數(shù)組中的單元
$arr = array(1,2,3,4,false,5,6,7,8,9,"",-1,-2,-3,4,null,0);
echo "<pre>";
var_dump($arr);
echo "</pre>";
echo '<br>';
echo "<pre>";
//過濾去除bool兼蜈、null、0等
var_dump(array_filter($arr));
echo "</pre>";
//過濾去除小于0的
function myfun($value){
if($value>=0)
return true;
else
return false;
}
echo "<pre>";
var_dump(array_filter($arr,"myfun"));
echo "</pre>";
//過濾去除不是2的倍數(shù)
echo "<pre>";
var_dump(array_values(array_filter($arr,function($value){
return !($value%2==0);
})));
echo "</pre>";
array_map 將回調(diào)函數(shù)作用到給定數(shù)組的單元上
<?php
// array_map 將回調(diào)函數(shù)作用到給定數(shù)組的單元上
$arr=array(1,2,3,4,5);
//數(shù)組個數(shù)不一樣拙友,會用空補(bǔ)齊
$brr=array("one","two","three");
print_r($arr);
echo '<br>';
function myfun($v,$bv){
echo "$v--------$bv <br>";
return 1;
}
$rarr=array_map("myfun",$arr,$brr);
print_r($rarr);
echo '<br>';
// 合并數(shù)組
$arr =array(1,2,3,4,5);
$brr =array("one","two","three");
$crr =array("aa","bb","cc","dd");
print_r($arr);
echo '<br>';
$rarr=array_map(null,$arr,$brr,$crr);
echo '<pre>';
print_r($rarr);
echo '</pre>';