数组的相关处理函数
1.数组的键/值操作函数
2.统计数组元素的个数与唯一性
3.使用回调函数处理数组的函数
4.数组的排序函数
5.拆分、合并、分解与结合数组
6.数组与数据结构
7.其他有用的数组处理函数
array_values 返回数组中所有的值
array_keys 返回数组中所有键名
<?php
// array_values 返回数组中所有的值
// array_keys 返回数组中所有键名
$lamp=array("os"=>"linux","webserver"=>"Apache","num"=>10,"aa"=>"10","ws"=>"Apache","db"=>"MySQL","language"=>"PHP");
print_r($lamp);
echo '<br>';
//输出下标连续的索引数组
// $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寻找需要类型、内容都要相等
print_r(array_keys($lamp,"10",true));
in_array 检查数组中是否存在某个值
<?php
//in_array 检查数组中是否存在某个值
$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可以查询数组,数组必须是顺序一致,类型,内容一致才行
if (in_array(array("a","b"),$lamp,true)) {
echo "在数组中";
}else{
echo "不在数组中";
}
// array_search 在数组中搜索给定的值,如果成功则返回相应的键名
echo array_search("MySQL",$lamp);
//array_key_exists 判断键是否存在
echo array_key_exists("MySQL",$lamp);
//isset 判断是否存在,空值判断不了,用array_key_exists判断
if (isset($lamp['hello'])) {
echo "在数组中";
}else{
echo "不在数组中";
}
array_flip 交换数组中的键和值,下标如果重复,后面覆盖前边的
<?php
// array_flip 交换数组中的键和值,下标如果重复,后面覆盖前边的
$lamp=array("os"=>"linux","webserver"=>"Apache");
print_r($lamp);
echo '<br>';
// $arr=array_flip($lamp);
// print_r($arr);
//array_reverse 返回一个单元顺序相反的数组,加true保留原来的键值
$arr=array_reverse($lamp);
print_r($arr);
count 计算数组中的单元数目或对象中的属性个数
strlen 计算字符串长度
<?php
$lamp=array("os"=>"linux","webserver"=>"Apache");
print_r($lamp);
echo '<br>';
// count 计算数组中的单元数目或对象中的属性个数
// 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 统计数组中所有的值出现的次数,如果出现重复,取第一个
$lam=array("os"=>"linux","linux","Linux","webserver"=>"Apache");
print_r($lam);
echo '<br>';
print_r(array_count_values($lamp));
array_filter 用回调函数过滤数组中的单元
<?php
//array_filter 用回调函数过滤数组中的单元
$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的倍数
echo "<pre>";
var_dump(array_values(array_filter($arr,function($value){
return !($value%2==0);
})));
echo "</pre>";
array_map 将回调函数作用到给定数组的单元上
<?php
// array_map 将回调函数作用到给定数组的单元上
$arr=array(1,2,3,4,5);
//数组个数不一样,会用空补齐
$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>';
// 合并数组
$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>';