掌握 PHP 数组

PHP 数组需要掌握的一些重要内容

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// 数组声明
$names = ['William', 'Peter', 'Shawn', 'John'];

// 添加到数组
$names[] = 'Micheal';

// 数组合并
$array3 = array_merge($array1, $array2);

// 使用扩展运算符连接数组
$names = ['William', 'Peter', 'Paul'];
$people = ['John', ...$names]; // ['John', 'William', 'Peter', 'Paul']

// 数组转字符串
$text = implode(', ', $names); // 'William, Peter, Paul'

// 字符串转数组
echo explode(',', $text); // ['William', 'Peter', 'Paul']

// 直接访问
echo $names[1]; //output Peter

// 删除并保留键
unset($names[1]);
// 结果 => [0 => 'William', 2 => 'Paul']

// 或者删除并更改键
array_splice($names, 1, 1);
// 结果 => [0 => 'William', 1 => 'Paul']

// 对每个数组条目进行循环
foreach($names as $name) {
echo 'Hello ' . $name;
}

// 数组中的项目数
echo count($names);

// 关联数组
$person = ['age' => 45, 'genre' => 'men'];

// 数组修改
$person['name'] = 'William';

// 循环数组 键=>值:
foreach($names as $key => $value) {
echo $key . ' : ' . $value;
}

// 检查特定键是否存在
echo array_key_exists('age', $person);

// 返回键
echo array_keys($person); // ['age', 'genre']

// 返回值
echo array_values($person); // [45, 'men']

// 数组过滤器(返回过滤后的数组)
$filteredPeople = array_filter($people, function ($person) {
return $person->active;
});

// 数组映射(返回变换数组)
$onlyNames = array_map(function($person) {
return ['name' => $person->name];
}, $people);

// 搜索关联数组
$items = [
['id' => '100', 'name' => 'product 1'],
['id' => '200', 'name' => 'product 2'],
['id' => '300', 'name' => 'product 3'],
['id' => '400', 'name' => 'product 4'],
];

// 搜索“名称”列中的所有值
$found_key = array_search('product 3', array_column($items, 'name'));
// 返回 2