array_chunk

array_chunk — 将一个数组分割成多个

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];

var_dump(array_chunk($arr, 2));
var_dump(array_chunk($arr, 2, false));

结果:

array(3) {
[0]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
[1]=>
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
[2]=>
array(2) {
[0]=>
string(1) "e"
[1]=>
string(1) "f"
}
}
array(3) {
[0]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
[1]=>
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
[2]=>
array(2) {
[0]=>
string(1) "e"
[1]=>
string(1) "f"
}
}

array_column

array_column — 返回数组中指定的一列

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
37
38
39
40
41
42
43
44
$arr = [
[
'id' => 123,
'name' => 'name1'
],
[
'id' => 124,
'name' => 'name2'
],
[
'id' => 125,
'name' => 'name3'
],
[
'id' => 126,
'name' => 'name4'
],
];

var_dump(array_column($arr, 'name'));
var_dump(array_column($arr, 'name', 'id'));

结果:

array(4) {
[0]=>
string(5) "name1"
[1]=>
string(5) "name2"
[2]=>
string(5) "name3"
[3]=>
string(5) "name4"
}
array(4) {
[123]=>
string(5) "name1"
[124]=>
string(5) "name2"
[125]=>
string(5) "name3"
[126]=>
string(5) "name4"
}

array_combine

array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

1
2
3
4
5
6
7
8
9
10
11
12
13
$key = ['one', 'two', 'three'];
$value = [1,2,3];

var_dump(array_combine($key,$value));

array(3) {
["one"]=>
int(1)
["two"]=>
int(2)
["three"]=>
int(3)
}

array_count_values

1
2
3
4
5
6
7
8
9
10
11
12
$array = array(1, "hello", 1, "world", "hello");
var_dump(array_count_values($array));


array(3) {
[1]=>
int(2)
["hello"]=>
int(2)
["world"]=>
int(1)
}

array_diff

array_diff — 计算数组的差集

1
2
3
4
5
6
7
8
9
10
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

var_dump($result);

array(1) {
[1]=>
string(4) "blue"
}

array_fill

array_fill — 用给定的值填充数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$a = array_fill(5, 6, 'banana');
$b = array_fill(-2, 4, 'pear');
print_r($a);
print_r($b);


Array
(
[5] => banana
[6] => banana
[7] => banana
[8] => banana
[9] => banana
[10] => banana
)
Array
(
[-2] => pear
[0] => pear
[1] => pear
[2] => pear
)

array_filter

array_filter — 用回调函数过滤数组中的单元

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$arr = [1,2,3,4,6,7,8,9,10];

$res = array_filter($arr, function ($val) {
return $val % 2 == 0;
});

var_dump($res);


array(5) {
[1]=>
int(2)
[3]=>
int(4)
[4]=>
int(6)
[6]=>
int(8)
[8]=>
int(10)
}

array_flip

array_flip — 交换数组中的键和值

1
2
3
4
5
6
7
8
9
10
11
12
13
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);
var_dump($flipped);


array(3) {
["oranges"]=>
int(0)
["apples"]=>
int(1)
["pears"]=>
int(2)
}

array_keys

array_keys — 返回数组中部分的或所有的键名

1
2
3
4
5
6
7
8
9
10
11
12
$input = array("oranges", "apples", "pears");
$flipped = array_keys($input);
var_dump($flipped);

array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}

array_map

array_map — 为数组的每个元素应用回调函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$input = array("oranges", "apples", "pears");
$res = array_map(function ($val){
return $val . '123';
}, $input);
var_dump($res);


array(3) {
[0]=>
string(10) "oranges123"
[1]=>
string(9) "apples123"
[2]=>
string(8) "pears123"
}

array_rand

array_rand — 从数组中随机取出一个或多个单元

1
2
3
4
5
6
7
8
9
10
11
12
13
$input = array("oranges", "apples", "pears");
$res = array_rand($input, 2);
var_dump($res);
var_dump($input[$res[1]]);


array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
string(5) "pears"

array_replace

array_replace — 使用传递的数组替换第一个数组的元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);


Array
(
[0] => grape
[1] => banana
[2] => apple
[3] => raspberry
[4] => cherry
)

array_slice

array_slice — 从数组中取出一段

1
2
3
4
5
6
7
8
9
$base = array("orange", "banana", "apple", "raspberry");
var_dump(array_slice($base, 0, 2));

array(2) {
[0]=>
string(6) "orange"
[1]=>
string(6) "banana"
}

arsort

arsort — 对数组进行逆向排序并保持索引关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$fruits = array("d" => "aemon", "a" => "brange", "b" => "canana", "c" => "dpple");
arsort($fruits);
var_dump($fruits);


array(4) {
["c"]=>
string(5) "dpple"
["b"]=>
string(6) "canana"
["a"]=>
string(6) "brange"
["d"]=>
string(5) "aemon"
}

asort

asort — 对数组进行排序并保持索引关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$fruits = array("d" => "aemon", "a" => "brange", "b" => "canana", "c" => "dpple");
asort($fruits);
var_dump($fruits);


array(4) {
["d"]=>
string(5) "aemon"
["a"]=>
string(6) "brange"
["b"]=>
string(6) "canana"
["c"]=>
string(5) "dpple"
}

sort

sort — 对数组排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
var_dump($fruits);


array(4) {
[0]=>
string(5) "apple"
[1]=>
string(6) "banana"
[2]=>
string(5) "lemon"
[3]=>
string(6) "orange"
}

list

list — 把数组中的值赋给一组变量

1
2
3
4
5
6
7
8
9
10
11
$fruits = array("lemon", "orange", "banana", "apple");

list($a, $b, $c) = $fruits;

echo $a,$b,$c, "\n";

list($a,,$c) = $fruits;
echo $a,$c, "\n";

lemonorangebanana
lemonbanana