最近发现做开发的时间越长,一些PHP函数反而记得不太清楚了,使用起来不是很顺手,现每天对PHP常用函数进行汇总,每天更新一小篇汇总内容。
一、数组的键值操作函数
1.array_value(array $arr) 返回数组中所有的值,结果为一个索引数组
2.array_keys(array $arr) 返回数组中的所有的键值,结果为一个索引哈数组
3.in_array(mix $a, array $arr [,boolen]) 判断$a 是否在$b中存在,如果存在则返回true,否则返回flase。若第三个参数存在并且 为真同时判断类型是否相同,默认为false。
5.array_reverse($arr) 返回一个顺序相反的数组
<?php
$arr = array(1,2,'num1'=>5,4,10,'num2'=>8);
$num_1 = 5;
$num_2 = '5';
$a = array_values($arr);//array(1,2,5,4,10,8)
$b = array_keys($arr);// array(0,1,'num1',5,4,'num2')
$c = in_array($num_1, $arr);//true
$d = in_array($num_2, $arr,true);//false
$e = array_flip($arr);//array(1=>0,2=>1,5=>'num1',4=>3,10=>4,8=>'num2')
$f = array_reverse($arr);//array('num2'=>8,10,4,'num1'=>5,2,1);
?>
二、数组中的统计函数
1.count($arr)统计数组的长度 返回一个整数
2.array_count_values($arr) 统计数组所有的值出现的次数,返回一个数组,数组中原数组的值为键名,出现的字数我键值
3.array_unique($arr)移除数组中重复的值
$arr = array(1,2,'num1'=>5,4,3,2,10,'num2'=>8,'2',5);
$a = count($arr); //10
$b = array_count_values($arr);//array(1=>1,2=>3,5=>2,4=>1,3=>1,10=>1,8=>1),注意不判断类型
$c = array_unique($arr);//array(1,2,'num1'=>5,4,3,10,'num2'=>8),注意不判断类型
三、带回调的函数
1.array_filter($arr,callback) 用callback函数过来数组$arr1中的单元
<?php
$student = array(
array('name'=>'zhangsan','age'=>20,'sex'=>'男'),
array('name'=>'lisi','age'=>25,'sex'=>'男'),
array('name'=>'mawu','age'=>23,'sex'=>'女'),
array('name'=>'xiaoliu','age'=>21,'sex'=>'男'),
array('name'=>'qige','age'=>30,'sex'=>'女'),
array('name'=>'wanba','age'=>28,'sex'=>'男')
);
function fun($arr){
if($arr['sex'] == '男'){
return true;
}
}
$a = array_filter($student,'fun');
// $a为
$student = array(
array('name'=>'zhangsan','age'=>20,'sex'=>'男'),
array('name'=>'lisi','age'=>25,'sex'=>'男'),
array('name'=>'xiaoliu','age'=>21,'sex'=>'男'),
array('name'=>'wanba','age'=>28,'sex'=>'男')
);
?>
2.array_map(callback,$arr1, $arr2, $arr3,...)对数组$arr1,$arr2,$arr3...中的单元依次执行callback操
<?php
$student = array(
array('name'=>'zhangsan','age'=>20,'sex'=>'男'),
array('name'=>'lisi','age'=>25,'sex'=>'男'),
array('name'=>'mawu','age'=>23,'sex'=>'女'),
array('name'=>'xiaoliu','age'=>21,'sex'=>'男'),
array('name'=>'qige','age'=>30,'sex'=>'女'),
array('name'=>'wanba','age'=>28,'sex'=>'男')
);
function fun($arr){
$arr['age'] +=5;
return $arr;
}
$a = array_map('fun',$student);
// $a结果
$student = array(
array('name'=>'zhangsan','age'=>25,'sex'=>'男'),
array('name'=>'lisi','age'=>30,'sex'=>'男'),
array('name'=>'mawu','age'=>28,'sex'=>'女'),
array('name'=>'xiaoliu','age'=>26,'sex'=>'男'),
array('name'=>'qige','age'=>35,'sex'=>'女'),
array('name'=>'wanba','age'=>33,'sex'=>'男')
);
?>
3. 3.array_walk(&$arr1,callback[,userdata])对数组$arr1的每个数组单元应用callback函数,成功返回true,失败返回false;$arr1的单元一般作为参数传给callback。常用的情况是,$arr1的值作为第一个参数,key作为第二个参数,若usedata存在,则作为第三个参数
$arr=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
function fun($value,$key,$a) {
echo $a."The key $key has the value $value<br />";
}
array_walk($arr,'fun','加个参数');
//输出结果为
//加个参数The key a has the value Cat
//加个参数The key b has the value Dog
//加个参数The key c has the value Horse
?>