数组相关函数代码演练
<?php
echo "OK";
// array_chunk(数组,size,是否保持元素的索引)
$arr=array_chunk([1,2,3,4,5,6,7],3,true);
echo "<pre>".print_r($arr,true)."</pre>";
// array_column(数组,'值列',‘索引列’),主要针对二位数组操作,提取二维数组的列作为新的数组
$arr=[
["id"=>1,"name"=>"ldy","age"=>30],
["id"=>2,"name"=>"cqw","age"=>34],
["id"=>3,"name"=>"dlf","age"=>31],
];
$arr_n=array_column($arr,"age","name");
var_dump($arr_n);
//array_combline();把两个数组组成一个数组,一个数组的值当键一个数组的值当值;
$arr_keys=['id'=>"id",'name'=>"name",'age'=>"age"];
$arr_values=[4,"zkn",29];
$arr=array_combine($arr_keys,$arr_values);
echo "<pre>".print_r($arr,true)."</pre>";
//array_count_values(数组)返回值在数组中出现的次数,值为键,次数为值,组成的数组;
$arr=[1,2,3,4,5,4,2,6,8,9,7,5,8,2];
var_dump(array_count_values($arr));
echo "<hr>";
//array_fill(start,sum,value);自动生成数组,start和sum必须使正整数
print_r(array_fill(1,5,"L"));
//array_fill_keys(arr,value);指定一个数组的值为键,生成一个数组,值value
print_r(array_fill_keys(["A","B","C"],"L"));
echo "<br>";
//array_flip():数组交换键和值
$arr=["id"=>0,"name"=>"ldy","age"=>20];
print_r(array_flip($arr));
//array_filter(arr,callback,ARRAY_FILTER_USE_KEYS|ARRAY_FILTER_BOTH);过滤函数
// array_key_exists(key,arr)检测数组中是否存在键或者索引,返回布尔值;
//array_key_first()|array_key_last() 返回当前键的值
//array_keys();返回键名组成的数组
// in_array("value",arr,true(值和类型)|flase(值)) 返回值布尔值
// array_search("value",arr,true(值和类型)|flase(值))返回值键名
//array_values();返会值组成的数组
$arr1=[2,4,6,9,10,13,15,10];
$arr2=["one","two","three","four"];
//array_merge(arr...);合并多个数组;
$arr=array_merge($arr1,$arr2);
echo "<pre>".print_r($arr,true);
//array_product():求数组的乘积
echo array_product($arr1);
//array_rand(arr,num);随机返回1个或者N个值的键名;1个时为单独的值,N个时为键组成的数组
$arr2=["id"=>1,"name"=>"ldy","age"=>30];
$arr=array_rand($arr2,2);
echo "<pre>".print_r($arr,true);
//array_reverse(arr,对索引数组是否保留键true|flase);返回一个反序的数组
print_r(array_reverse($arr1,true));
$arr1=[1,2,3,4,6,7];
$arr2=[2,4,6,9];
// array_replace(arr1,arr2)根据相同键,arr2的值替换arr1的值,如果arr2的键,arr1不存在,则直接添加入arr1;
print_r(array_replace($arr1,$arr2));
// array_slice(arr,start,lenght);截取数组
echo "<hr>";
// array_splice(arr,start,num,newvalue);去掉数组中一部分值,有新值代替,改变的原数组
array_splice($arr1,1,3,[20,30]);
echo print_r($arr1,true);
//array_sum()求和
$arr=[1,2,2,3,1,3,4,4,5];
// array_unique($arr);返回一个去过重复数值后的数组
print_r(array_unique($arr));
//extract(arr)与compact(key,value);
$arr=["id"=>1,"age"=>20];
extract($arr);
$arr=array("id",'age');
$name="ldy";
print_r(compact("name",$arr));
echo "<hr style='color:red'>";
$arr=[6,2,3,5,4,0];
print_r(array_reverse($arr));
sort($arr);//对数组按大小就行排序;返回布尔值
print_r($arr);
//ksort()对数组键名进行排序返回布尔值
//rsort()对数组逆向排序
//shuffle()对数进行打乱排序;
//usort(arr,func)自定义排序
//uasort()对数组进行排序,并保持键值对不变
// array_intersect — 计算数组的交集;两组数组中相对值的集合
// array_diff — 计算数组的差集,第二个数组-第一个数组,第二个数组中不同值的值;
$arr2=[1,2,3,4,5];
$arr1=[2,4,5,6,7];
$arr=array_diff($arr1,$arr2);
var_dump($arr);
$arr=array_diff($arr2,$arr1);
var_dump($arr);
var_dump(array_intersect($arr1,$arr2));
代码运行结果