数组中常见的函数:
1、代码练习:
<?php
$arr=['one'=>11,'two'=>23,'three'=>43,'four'=>56,'five'=>33,'six'=>21,'seven'=>22,'eight'=>50];
//1、 获取数组的键值函数
print_r(array_keys($arr));//返回键组成的数组
echo '<br>';
// array_key_exists($key,$arr)返回布尔值:bool
print_r(array_key_exists('three',$arr));
echo '<br>';
var_dump(in_array('two',$arr));
echo '<br>';
print_r(array_key_last($arr));
echo '<br>';
//2、array_rand()随机从数组中取出一个或者多个元素返回一个新数组
print_r(array_rand($arr,2));
echo '<br>';
// 3、array_column($arr,value,key)从多维数组中取出一列元素组成新的数组(关联数组key=>value);
$stu=[
['id'=>1,'name'=>'ldy','age'=>26,'sex'=>'1'],
['id'=>2,'name'=>'dlf','age'=>28,'sex'=>'0'],
['id'=>3,'name'=>'dc','age'=>20,'sex'=>'1']
];
print_r(array_column($stu,'name','id'));
echo '<br>';
//4、array_combine($arr1,$arr2)两组数据创建一个新数组:[$arr1=>$arr2,……]
echo '<hr>';
$arr1=['id'=>1,'name'=>'ldy','age'=>26,'sex'=>'1'];
$arr2=['id'=>2,'name'=>'dlf','age'=>28,'sex'=>'0'];
$arr3=['id1'=>2,'name1'=>'dlf','age1'=>28,'sex1'=>'0'];
print_r(array_combine($arr1,$arr2));//$arr1做键,$arr2做值
echo '<br>';
print_r(array_merge($arr1,$arr3));//合并两个数组
echo '<br>';
echo '拆分数组<br>';
// 5、array_chunk($arr,int)把一个数组拆分成和list()
printf('<pre>%s</pre>',print_r(array_chunk($arr1,2),true));
list($ar1,$ar2)=array_chunk($arr2,2);
printf('<pre>%s<br>%s</pre>',print_r($ar1,true),print_r($ar2,true));
//6、数组差集diff和交集intersect;
$arr1=[2,3,5,6,7,8];
$arr2=[1,2,3,4,5,6,8];
// print_r(array_intersect($arr1,$arr2));
// print_r(array_intersect($arr2,$arr1));
printf('<pre>%s<br>%s</pre>',print_r(array_intersect($arr1,$arr2),true),print_r(array_intersect($arr2,$arr1),true));
printf('<pre>%s<br>%s</pre>',print_r(array_diff($arr1,$arr2),true),print_r(array_diff($arr2,$arr1),true));
$arr1=['id'=>1,'name'=>'ldy','age'=>26,'sex'=>'1'];
// 7、把关联数组差分成对象
extract
($arr1);
echo $id,$name,$age,'<br>';
//8、 implode()和explode()
$arr=['one',1,2,'two'];
echo implode($arr,'*'),'<br>';
print_r(explode('-',implode($arr,'*')));
echo '<br> ';
// 9、随机生成数组;rand();
print_r(range(10,100,10));
echo rand(2,10),'<br>';
// 10、array_fill()用指定的内容填充数组
$arr=[];
print_r(array_fill(1,5,"*_*"));
2、代码练习演示结果:
总结:
1、数组值进行计算时:字符串如果以数字开头取数字部分(碰见字符结束)参与计算,字母开头的字符串当作零参与运算;
2、usort($arr,function($value1,$value2){})
自定义排序:重排值并赋予新的键名
3、array_slice($arr,$start,$step,true)
:对索引数组,重排键;
4、array_splice($arr,$start,$step)
:$start和$step去负值时,包含$start但不包含$step;
5、array_column($arr,value,key)
从多维数组中取出一列元素组成新的数组(关联数组key=>value);