php 依赖于强大的数组,封装好的,不需要自己写(自己写的性能不好,并且有时还不好写),有必要复习一下.好记性不如烂笔头,自己亲自敲一下.只写实例,参数看官网.
https://www.php.net/manual/zh/ref.array.php
array_change_key_case
将数组中的所有键名修改为全大写或小写
1 | $input_arr = ['Fist' =>1, 'Two' => 2]; |
- 多维数据递归键名大小写
1 | function array_change_key_case_recursive($arr) |
array_chunk
将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
分成多少列数组示例
1 | $arr= ['dog','pig','cat','orange','apple','banana']; |
array_column
array_column — 返回数组中指定的一列
1 | $records = array( |
array_combine
创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
1 | $a = array('green', 'red', 'yellow'); |
以数组的 value 值 分组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36$info = [
'李世民' => '唐代',
'秦琼' => '唐代',
'朱元璋' => '明朝'
];
// 以 value 值 分组
function flipAndGroup($input) :array
{
$outArr = [];
array_walk($input, function($value, $key)use(&$outArr){
if(!isset($outArr[$value]) || !is_array($outArr[$value]))
{
$outArr[$value] = [];
}
$outArr[$value][] = $key;
});
return $outArr;
}
print_r(flipAndGroup($info));
Array
(
[唐代] => Array
(
[0] => 李世民
[1] => 秦琼
)
[明朝] => Array
(
[0] => 朱元璋
)
)
array_count_values
统计数组中所有的值
array_count_values() 返回一个数组: 数组的键是 array 里单元的值; 数组的值是 array 单元的值出现的次数。
1 | $list = [ |
array_diff_assoc
带索引检查计算数组的差集
array_diff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。
array_fill_keys
使用指定的键和值填充数组
1 | $keys = array('foo', 5, 10, 'bar'); |
array_fill
用给定的值填充数组
1 | $a = array_fill(5, 6, 'banana'); |
array_filter
用回调函数过滤数组中的单元
1 | $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]; |
array_flip
交换数组中的键和值
1 | $input = ["随"=>"某人",'李'=>"寻欢",'陈'=>'独秀'] |
array_key_exists
检查数组里是否有指定的键名或索引
1 | $search_array = array('first' => 1, 'second' => 4); |
array_key_first
1 | $array = ['a' => 1, 'b' => 2, 'c' => 3]; |
array_key_last
array_keys
返回数组中部分的或所有的键名
1 | $array = array(0 => 100, "color" => "red"); |
array_map
为数组的每个元素应用回调函数
1 | $func = function($value) { |
array_merge
1 | $array1 = array("color" => "red", 2, 4); |
array_merge_recursive
递归地合并一个或多个数组
1 | $ar1 = array("color" => array("favorite" => "red"), 5); |
array_pad
以指定长度将一个值填充进数组
1 |
|
array_rand
从数组中随机取出一个或多个单元,注意,这个返回的 数组的键
1 | $input = array("one", "two", "three", "four", "five"); |
array_reduce
用回调函数迭代地将数组简化为单一的值
1 | function sum($carry, $item) |
array_replace
使用传递的数组替换第一个数组的元素
1 | $arr = ['111','222','333']; |
array_search
在数组中搜索给定的值,如果成功则返回首个相应的键名
1 | $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); |
array_slice
从数组中取出一段
1 | $input = array("a", "b", "c", "d", "e"); |
array_splice
去掉数组中的某一部分并用其它值取代
1 | $input = array("red", "green", "blue", "yellow"); |
array_unique
移除数组中重复的值
1 | $input = array("a" => "green", "red", "b" => "green", "blue", "red"); |
array_values
返回数组中所有的值
array_walk
使用用户自定义函数对数组中的每个元素做回调处理
array_walk_recursive
对数组中的每个成员递归地应用用户函数
1 | $sweet = array('a' => 'apple', 'b' => 'banana'); |
注意上例中的键 ‘sweet’ 并没有显示出来。任何其值为 array 的键都不会被传递到回调函数中去。
arsort
对数组进行逆向排序并保持索引关系
1 | $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); |
asort
对数组进行排序并保持索引关系
1 | $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); |
compact
建立一个数组,包括变量名和它们的值
1 | $city = "San Francisco"; |