数组函数
1、array_map
函数将给定函数应用于一个或多个数组的每个元素,并返回包含结果的数组。请注意,原始数组的键不受影响:即使修改了值,它们也会保留在结果数组中。示例:
$numbers = [1, 2, 3, 4];
$squaredNumbers = array_map(function($n) {
return $n * $n;
}, $numbers);
print_r($squaredNumbers);
// 打印结果 : [1, 4, 9, 16]
提示: 如果您不需要创建新数组,而只想修改现有数组,则可以使用array_walk。array_walk将函数应用于数组的每个元素,但直接修改数组,而不返回它。在某些情况下,这可能更有效。
2、array_walk
示例
$numbers = [1, 2, 3, 4];
array_walk($numbers, function(&$n) {
$n *= $n;
});
print_r($numbers);
// 打印结果 : [1, 4, 9, 16]
如你所见,array_walk 直接更改 $numbers 数组,而无需创建新的数组。
3、array_reduce
函数用于通过将回调函数应用于数组的每个元素来查找单个总计。它生成的 “value” 可以是任何类型,包括数组、字符串或对象。它生成的值的类型取决于回调中定义的逻辑示例:
$numbers = [1, 2, 3, 4];
$sum = array_reduce($numbers, function($carry, $item) {
. return $carry + $item;
}, 0);
echo $sum;
// 打印结果: 10
4、array_filter函数根据回调函数筛选数组的元素。只有返回 true 的元素才会包含在返回的数组中。回调函数还可以接受每个元素的键。这不仅允许按值进行筛选,还允许按键进行筛选。示例:
$numbers = [1, 2, 3, 4, 5];
$evenNumbers = array_filter($numbers, function($n) {
return $n % 2 === 0;
});
print_r($evenNumbers);
// 打印结果: [2, 4]
5、array_merge
函数将一个或多个数组合并为一个数组。此函数用于合并多个数据集。示例:
$array1 = ["a" => "pomme", "b" => "banane"];
$array2 = ["a" => "ananas", "c" => "citron"];
$result = array_merge($array1, $array2);
print_r($result);
// 打印结果: ["a" => "ananas", "b" => "banane", "c" => "citron"]
6、array_keys
函数返回数组的所有键或与指定值对应的键。它对于从关联数组中获取索引特别有用。
$array = ["a" => "pomme", "b" => "banane", "c" => "citron"];
$keys = array_keys($array);
print_r($keys);
// Résultat : ["a", "b", "c"]
但是,要检查数组中是否存在键,最好使用array_key_exists而不是使用array_keys获取所有键,然后使用in_array。使用array_key_exists更直接,避免了不必要的步骤。
$array = ['nom' => 'Jean', 'âge' => 30];
if (array_key_exists('nom', $array)) {
echo 'La clé "nom" existe dans le tableau';
}
7、array_values
函数返回数组中的所有值。我建议当你想从另一个数组中获取一个数字数组时使用它。
$array = ['a' => 'pomme', 'b' => 'banane', 'c' => 'citron'];
$values = array_values($array);
print_r($values);
// Résultat : ['pomme', 'banane', 'citron']
8、array_unique
函数删除数组中的重复值。此函数可用于获取一组不同的值。
array_push 插入数组尾部
示例:
$array = ['pomme', 'banane', 'pomme', 'citron'];
$uniqueArray = array_unique($array);
print_r($uniqueArray);
// Résultat : ['pomme', 'banane', 'citron']
9、array_combine
函数通过组合两个不同的数组来创建数组。一个数组具有键,另一个数组具有值。第一个数组中的每个键都将链接到第二个数组中的值。这使得它可用于组合两组数据,例如姓名和年龄。
$keys = ['nom', 'prénom', 'âge'];
$values = ['Dupont', 'Jean', 30];
$resultat = array_combine($keys, $values);
print_r($resultat);
// Résultat :
// Array
// (
// [nom] => Dupont
// [prénom] => Jean
// [âge] => 30
// )
10、array_push 插入数组尾部,示例:
array_push([1, 2 ,3 ], 4]);
//结果: [1, 2, 3, 4]
array_unshift 插入数组开头一个或多个值
示例:
array_unshift([2,3.4], 1);
//结果: [1, 2, 3, 4]
array_pop删除数组中的最后一个元素
示例:
array_pop([1,2,3,4]);
//结果: [1, 2, 3]
array_search 搜索数组中是否有值
示例:
array_search([1, 3], 3);
//结果:1 返回的值数组的key
in_array 检查数组中是否存在某个值
示例:
in_array(1, [1, 2, 3]);
//结果:true
implode 连接数组元素
示例:
implode(':' , [1, 2, 3, 4]);
//结果:1 : 2 : 3 : 4
array_column 从数组中提取指定多个键对应的值
示例:
// Example array
$people = [
['name' => 'John', 'age' => 25, 'id' => 11],
['name' => 'Jane', 'age' => 30, 'id' => 22],
['name' => 'Bob', 'age' => 45, 'id' => 33]
];
// Extract a single column of values
$names = array_column($people, 'name');
$last_names = array_column($people, 'name', 'id');
// Output the result
print_r($names);
print_r($last_names);
输出结果。
Array
(
[0] => John
[1] => Jane
[2] => Bob
)
Array
(
[11] => John
[22] => Jane
[33] => Bob
)
sort() : 按键值升序排序
rsort() : 按键值逆序排序
ksort() : 按关联数组的键名升序排序,排序的结果保留键值的关联关系
count() 统计
在 PHP 中,序列化数组可以通过使用serialize
函数将数组转换为字符串,例如:
$array = array('foo', 'bar', 'baz');
$serialized_array = serialize($array);
反之,可以使用unserialize
函数将序列化后的字符串转换回数组:
$unserialized_array = unserialize($serialized_array);
请注意,在使用serialize
和unserialize
函数时需要小心,因为它们可以执行任意代码,可能导致安全问题。所以最好只在可信的环境中使用这些函数。