php常用数组函数使用示例说明

PHP 投稿 87600 1 评论

php常用数组函数使用示例说明

收集了关于php常用数组函数使用示例说明。

如:array_slice,array_chunk,array_merge_recursive,array_merge等常用数组函数。

1.sort(数组)对索引数组进行升序排序,会重置索引,会改变原数组,成功返回true

$arr_num=[95,82,88,96,70,100];
sort($arr_num);
print_r($arr_num);
//Array ( [0] => 70 [1] => 82 [2] => 88 [3] => 95 [4] => 96 [5] => 100 )

2.array_slice(数组,开始位置,[提取的个数],[保留或重置键名])指定位置提取元素,第三个参数如果是true就保留键名,false,重置键名

$arr = array('sfjvipA'=>90,'sfjvipB'=>91,'sfjvipC'=>92,'sfjvipD'=>93);
$a = array_slice($arr,3);//提取从指定位置开始向后的所有元素
$b = array_slice($arr,1,2);//从开始位置提取的个数
print_r($a);
//Array ( [sfjvipD] => 93 )
echo "<br>";
print_r($b);
//Array ( [sfjvipB] => 91 [sfjvipC] => 92 )

3.explode(匹配分割点,要分割的字符串,个数)函数把字符串分割为数组

$str="www.feishuai.vip/v/1.mp4||www.feishuai.vip/v/2.mp4||www.feishuai.vip/v/3.mp4";
$arr1 = explode("||",$str);
print_r($arr1);
// Array ( [0] => www.feishuai.vip/v/1.mp4 [1] => www.feishuai.vip/v/2.mp4 [2] => www.feishuai.vip/v/3.mp4 )

4.array_chunk(数组,新数组包含多少个元素,[true/false])把一个数组分割为新的数组,返回一个多维的索引数组,true/false:可选,默认是false重置键名,true:保留原始数组中的键名

$arr = array('sfjvipA'=>90,'sfjvipB'=>91,'sfjvipC'=>92,'sfjvipD'=>93);
$new_arr = array_chunk($arr,3,true);
print_r($new_arr);
//Array ( [0] => Array ( [sfjvipA] => 90 [sfjvipB] => 91 [sfjvipC] => 92 ) [1] => Array ( [sfjvipD] => 93 ) )

5.array_count_values()用于统计数组中所有值出现的次数,返回一个关联数组,键名:原数组的值,键值:出现次数

$arr_num3=[1,1,1,3,5,5,6,6,66,66,7,77,77];
$count_num=array_count_values($arr_num3);
print_r($count_num);
//Array ( [1] => 3 [3] => 1 [5] => 2 [6] => 2 [66] => 2 [7] => 1 [77] => 2 )

6.array_merge_recursive(数组1,数组2…)也是把一个或多少个数组合并为一个数组,但和array_merge()不同的是,如果有相同的键名,会将多个相同键名的值递归组成一个数组

$new_arr2 = array_merge_recursive($arr2,$arr3);
print_r($new_arr2);
//Array ( [sfjvipA] => 99 [sfjvipB] => Array ( [0] => 95 [1] => 98 ) [sfjvipC] => Array ( [0] => 96 [1] => 97 ) [sfjvipD] => 99 )

7.array_combine(键名数组,键值数组)合并两个数组成为一个新数组,一个数组是键名,一个数组是键名,两个数组元素个数必须相同

$arr4 = ['sfjvipB','sfjvip1','sfjvipD','sfjvip2','sfjvip3'];
$arr5 = [100,99,86,87,98];
$new_arr3 = array_combine($arr4,$arr5);
print_r($new_arr3);
//Array ( [sfjvipB] => 100 [sfjvip1] => 99 [sfjvipD] => 86 [sfjvip2] => 87 [sfjvip3] => 98 )

8.array_rand(数组,数量)返回数组中的随机键名,如果规定函数返回的不止一个键名,则返回包含随机键名的数组

8.1:随机取一个:

$rand1 = array_rand($new_arr3);
print_r($rand1);
//sfjvip2

8.2:随机取多个:

$rand2 = array_rand($new_arr3,2);
print_r($rand2);
//Array ( [0] => sfjvip2 [1] => sfjvip3 )

9.array_search()函数检测数组中是否存在指定的值,若找到返回键名,如果没找到则返回false,第三个参数true为可选参数,即检测值又检测类型

$x = array_search('6',[1,2,3,4,5,6]);
var_dump($x);
//int(5)

10.rsort()对索引数组进行降序排列,其它特性和sort一样,类似的还有ksort()键值按升序排列,krsort()键值按降序排列

11.shuffle()按键值对数组进行随机排序,会直接改变原数组,会重置键名,返回一个布尔值

11.1:索引数组随机排序:

$arr_num1 = [1,2,3,4,5,6];
shuffle($arr_num1);
print_r($arr_num1);
//Array ( [0] => 5 [1] => 6 [2] => 2 [3] => 4 [4] => 1 [5] => 3 )

11.2:关联数组随机排序,不改变原关联关系:

$arr_num2 = ['a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6];
function array_rs($arr){
   $a = $arr; //复制原数组
   shuffle($arr); //按键值对数组进行随机排序
   $k = [];
   foreach ($arr as $value){
       $b = array_keys($a,$value);//获取原数组中对应的键名
       $k = array_merge($k,$b);//合并数组
   }
   return array_combine($k,$arr);//合并键名和键值
};
$array1 = array_rs($arr_num2);
print_r($array1);
//Array ( [a] => 1 [b] => 2 [e] => 5 [d] => 4 [f] => 6 [c] => 3 )

12.array_merge(数组1,数组2…)函数把多个数组合并为一个数组,如果两个或多个数组元素有相同的键名,最后的会覆盖前面的

$arr2 = ['sfjvipA'=>99,'sfjvipB'=>95,'sfjvipC'=>96];
$arr3 = ['sfjvipD'=>99,'sfjvipB'=>98,'sfjvipC'=>97];
$new_arr1 = array_merge($arr2,$arr3);
print_r($new_arr1);
//Array ( [sfjvipA] => 99 [sfjvipB] => 98 [sfjvipC] => 97 [sfjvipD] => 99 )

编程笔记 » php常用数组函数使用示例说明

赞同 (48) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(1)个小伙伴在吐槽
  1. 做的内容很好,文档很无语
    游客 2022-09-16 10:12 (2年前) 回复