一。数组键/值操作有关的函数
1.array_values()//返回数组下标默认为索引的
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
$arr=array_values($lamp);
list($os,$wb,$db,$lang)=$arr;
echo $os.'<br>';
echo $wb.'<br>';
echo $db.'<br>';
echo $lang.'<br>';
echo'<pre>';
print_r($arr);
echo '</pre>';
2.array_keys()返回数组中数字或字符串的键名
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
$arr=array_keys($lamp,"Mysql",true);//三个参数,后两个可选,第二个是制定数组哪个参数,第三个要求第二个的参数与数组参数完全吻合
list($os,$wb,$db,$lang)=$arr;
echo $os.'<br>';
echo $wb.'<br>';
echo $db.'<br>';
echo $lang.'<br>';
echo'<pre>';
print_r($arr);
echo '</pre>';
3.in_array("a",$b,c)//搜索b中有没有a
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
if(in_array("linux",$lamp,true)){
echo "exit";
}
else{
echo "not exit";
}
4.array_key_exists("a",$b)
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
if(array_key_exists("os",$lamp)){
echo "exit";
}
else{
echo "not exit";
}
5.array_flip(数组)//交换数组中的键和值
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
array_flip($lamp);
echo '<pre>';
print_r($lamp);
echo'</pre>';//如果转换后的数组键值有重复,则后面的覆盖前面的
6.array_reserve()//返回一个单元顺序相反的数组
二。统计数组元素的个数和唯一性的
1.count($a,b) //b可选,b的值为0或1,0表示不递归统计数组元素个数,1表示统计
sizeof();//统计
$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql",array(1,2,3));
echo count($lamp,1);
2.array_count_values()//统计数组中所有的值出现的次数,返回一个数组,原数组的值作为键名,出现的次数作为值
$user=array(1,2,1,2,3);
print_r(array_count_values($user));
3.array_unique//移除数组中重复的值
$user=array(1,2,1,2,3);
print_r(array_unique($user));
三。使用回调函数处理数组的函数
1.array_filter()//使用回调函数过滤数组中的值
$arr=array(1,2,3,4,5,6,-2,-4);
$arr1=array_filter($arr,"myfun");
function myfun($n){
if($n>0){
return true;
}
else{
return false;
}
}
echo '<pre>';
print_r($arr1);
echo '</pre>';
2.array_walk()//数组中的每个成员应用用户函数
$lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
array_walk($lamp,"myfun1");
function myfun1($value,$key){
echo "the key'{$key}' has the value '$value' <br>";
}
//还可以有第三个参数,这个参数用于传到function中
$lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
array_walk($lamp,"myfun1","===");
function myfun1($value,$key,$p){
echo "the key'{$key}' has '{$p}the value '$value' <br>";
}
//还可以用传引用的方式,使原数组发生变化
$lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
array_walk($lamp,"myfun1");
function myfun1(&$value,$key,$p){
$value="web";
}
echo '<pre>';
print_r($lamp);
echo '</pre>';
3.array_map()//将回调函数作用在指定的数组单元中
$lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
$arr=array_map("myfun",$lamp);
function myfun($n){
return "==".$n."==";
}
//后面的参数可以再加数组,但数组中的元素要和原数组相同
$lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
$lp=array("os"=>"windows","wb"=>"iis","db"=>"sql");
$arr=array_map("myfun",$lamp,$lp);
function myfun($n,$t){
if($n==$t){
return "same";
}
else{
return "different";
}
}
print_r($arr);