php数组函数实例教程详解

发布时间:2021-01-22编辑:脚本学堂
php数组函数的综合例子大全,包括php数组的键值操作函数、统计数组的元素和唯一性、数组的排序函数、拆分,合并,分解与结合函数等。

一、php数组函数:
数组函数:
//作用:提供了很多官方写的非常有用的代码段,提高编写速度.
1.数组的键值操作函数
2.统计数组的元素和唯一性
3.使用回调函数处理数组的函数
4.数组的排序函数
5.拆分,合并,分解与结合函数
6.数组与数据结构
7.其他有用的数组处理函数

二、php数组的键值操作函数:
1、array_values();

模拟获取key和value的值
 

复制代码 代码示例:

<?php 
$arr=array("name"=>"user1","age"=>"30","sex"=>"man"); 
foreach($arr as $key=>$val){ 
$keys[]=$key; 
$vals[]=$val; 

echo "<pre>"; 
print_r($keys); 
echo "</pre>"; 
echo "<hr>"; 
echo "<pre>"; 
print_r($vals); 
echo "</pre>"; 

?> 

2.array_values的使用
 

复制代码 代码示例:
<?php 
$arr=array("name"=>"user1","age"=>"30","sex"=>"man"); 
$keys=array_values($arr); 
echo "<pre>"; 
print_r($keys); 
echo "</pre>"; 
?> 
 

array_values();//获取数组中的值
array_keys();//获取数组中的健
in_array();//检查一个值是否在数组中
array_key_exists();//检查一个键是否在数组中
array_flip();//键和值对调
array_reverse();数组中的值反转

统计数组的元素和唯一性
1.count();
2.array_count_values();//统计数组中每个值出现的次数.
3.array_unique();//删除数组中的重复
使用回调函数处理数组的函数:

1.array_filter();
 

复制代码 代码示例:
<?php 
$arr=array("user1"=>70,60,80,78,34,34,34,56,78,78); 
function older($var){ 
return ($var>60); 

$arr2=array_filter($arr,"older"); 
echo "<pre>"; 
print_r($arr2); 
echo "</pre>"; 
?> 

2.array_map();
引用参数:
需求:数组值自加1
 

复制代码 代码示例:
function show(&$arr){
foreach($arr as $key=>$val){
$arr[$key]=$val+1;
}
}
 

数组的排序函数
1.sort(); 升序,不保留key
2.rsort(); 降序 ,不保留key
3.asort(); 升序,保留key
4.arsort();  降序,保留key
5.ksort();根据key排序 升序
6.krsort();根据key排序 降序
7.natsort();自然数排序 升序,比如图片img2.jpg
8.natcasesort();忽略大小写 升序排列
9.multisort();多数组排序
ksort();
 

复制代码 代码示例:
<?php 
$arr=array("user1"=>10,"b"=>1,"c"=>3,"d"=>30); 
$arr2=array_flip($arr); 
ksort($arr2); 
echo "<pre>"; 
print_r($arr2); 
echo "</pre>"; 
?> 

natsort();
 

复制代码 代码示例:
<?php 
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); 
sort($array1); 
echo "Standard sortingn"; 
print_r($array1); 
natsort($array2); 
echo "nNatural order sortingn"; 
print_r($array2); 
?>  

多数组排序:
 

复制代码 代码示例:
<?php 
$arr=array("aaa","bbbbbbbbb","cc","ddddd"); 
//需求: 
//1.按照标题长度排序 
//2.标题长度变成标题字符串的key 
//将数组中的value的长度取出,并作为一个新数组 
//strlen($val)取出字符串的长度 
foreach ($arr as  $val) { 
$lens[]=strlen($val); 
}
array_multisort($lens,SORT_ASC,$arr);//对数组进行排序,根据第一个数组来排序第二个数组  SORT_ASC表示升序排序 
sort($lens); 
$arr2=array_combine($lens, $arr);//第一个数组作为第二个数组对应的key,返回一个新数组 
echo "<pre>"; 
print_r($arr2); 
echo "</pre>"; 
?> 
 

拆分,合并,分解与结合函数
1.explode();
2.inplode();//join();
3.array_slice();数组的截取
4.array_splice();数组的裁剪
5.array-merge();合并多数组
6.array_combine();合并数组,两个数组,前一个数组作为key,后一个数组作为value
7.array_intersect();找出两个数组的交集
8.array_diff();找出两个数组的不同,根据第一个参数
9.array_pop();从最后弹出一个值,返回弹出值
10.array_push();从最后的位置压入一个值,返回元素的个数
11.array_shift();从洗前面的位置删除一个值
12.array_unshift();从最前的位置压入一个值
 

复制代码 代码示例:
<?php 
$str="php,js,html,ces,div"; 
$arr=explode(",",$str); 
echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 
?> 

2.inplode();将数组组合成为字符串
 

复制代码 代码示例:

<?php 
$str="php,js,html,ces,div"; 
$arr=explode(",",$str); 
$str2=implode("-",$arr); 
echo "<pre>"; 
print_r($str2); 
echo "</pre>"; 
?> 

<?php 
$str="php,js,html,ces,div"; 
$arr=explode(",",$str); 
$arr2=array_reverse($arr);//讲数组中的值进行倒序 
$str2=implode("-",$arr2); 
echo "<pre>"; 
print_r($str2); 
echo "</pre>"; 
?> 
 

array_slice();
 

复制代码 代码示例:
<?php 
//截取总是从后往前截取 
$arr = array("aa","bb","cc","dd","ee","ff","gg"); 
$arr2 = array_slice($arr, 0,2);//表示从0的位置截取2个  aa bb 
$arr3 = array_slice($arr, -3,2);//表示从后往前数到3的位置,开始截取2个//ee  ff 
echo "<pre>"; 
print_r($arr3); 
echo "</pre>";  
?> 

不仅拆减,而且可以添加 
 

复制代码 代码示例:
<?php 
$arr = array("aa","bb","cc","dd","ee","ff","gg"); 
$arr2 = array_splice($arr, 0, 3, array("hh","ii","jj","kk"));//直接取原数组的值,并将原数组进行改变,原数组为取走以后剩下的值 
echo "<pre>"; 
print_r($arr2); 
echo "</pre>"; 
echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 
?>

array_merge(); 
 

复制代码 代码示例:
<?php 
$a = array("aa","bb","cc"); 
$b = array("dd","ee","ff","gg"); 
$arr  = array_merge($a, $b); 
echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 
?> 
 

其他有用的数组处理函数:
1.array_rand();//随机取一个key
2.range();//取出某个范围的数组
3.shuffle();//打乱数组的作用
4.array_sum();//计算数组内所有人的和(计算总得分)
如果计算数组的key之和,可以采用array_flip()对数组的健和值进行对调,然后就可以算出健之和.
 

复制代码 代码示例:

<?php 
$arr = array("aa","bb","cc","dd","ee","ff","gg"); 
//将原数组顺序随机打乱 
shuffle($arr); 
//取出数组的前3个 
$arr2= array_slice($arr, 0 , 3); 
echo "<pre>"; 
print_r($arr2); 
echo "</pre>"; 
?>
//随机输出四位字符 验证码实现:

<?php 
//取出1-9 a-z A-Z的数组 
$a = range(1, 9); 
$b = range(a, z); 
$c = range(A, Z); 
//将3个数组合并 
$d = array_merge($a,$b,$c); 
//将合并后的数组打乱 
shuffle($d); 
//取合并后的前4位 
$e = array_slice($d, 0, 4); 
//将$e数组变为字符串 
$f = join("", $e); 
echo $f; 
?>