在PHP中,定义数组有多种方法。以下是几种常见的方式:
array()
函数这是PHP中最传统和最常见的方式。
$array = array("apple", "banana", "cherry");
[]
(PHP 5.4及以上版本)从PHP 5.4开始,可以使用更简洁的短数组语法。
$array = ["apple", "banana", "cherry"];
range()
函数range()
函数可以生成一个包含指定范围内元素的数组。
$array = range(1, 10); // 生成1到10的数组
explode()
函数explode()
函数可以将字符串按指定的分隔符拆分为数组。
$string = "apple,banana,cherry";
$array = explode(",", $string);
array_fill()
函数array_fill()
函数可以创建一个包含指定数量相同值的数组。
$array = array_fill(0, 5, "apple"); // 创建一个包含5个"apple"的数组
array_combine()
函数array_combine()
函数可以将两个数组合并为一个关联数组,其中一个数组作为键,另一个数组作为值。
$keys = ["a", "b", "c"];
$values = [1, 2, 3];
$array = array_combine($keys, $values);
array_pad()
函数array_pad()
函数可以将数组填充到指定长度。
$array = [1, 2, 3];
$array = array_pad($array, 5, 0); // 将数组填充到长度为5,填充值为0
compact()
函数compact()
函数可以将变量名和它们的值组合成一个关联数组。
$name = "John";
$age = 30;
$array = compact('name', 'age');
list()
函数list()
函数可以将数组中的值赋给一组变量。
$array = [1, 2, 3];
list($a, $b, $c) = $array;
json_decode()
函数json_decode()
函数可以将JSON字符串转换为PHP数组。
$json = '{"name":"John", "age":30}';
$array = json_decode($json, true);
parse_str()
函数parse_str()
函数可以将查询字符串解析为数组。
$query = "name=John&age=30";
parse_str($query, $array);
str_split()
函数str_split()
函数可以将字符串拆分为数组。
$string = "hello";
$array = str_split($string);
array_map()
函数array_map()
函数可以将回调函数应用到数组的每个元素上。
$array = [1, 2, 3];
$array = array_map(function($value) {
return $value * 2;
}, $array);
array_filter()
函数array_filter()
函数可以过滤数组中的元素。
$array = [1, 2, 3, 4, 5];
$array = array_filter($array, function($value) {
return $value % 2 == 0;
});
array_reduce()
函数array_reduce()
函数可以将数组缩减为单个值。
$array = [1, 2, 3, 4, 5];
$sum = array_reduce($array, function($carry, $item) {
return $carry + $item;
}, 0);
array_walk()
函数array_walk()
函数可以对数组中的每个元素应用用户自定义函数。
$array = [1, 2, 3];
array_walk($array, function(&$value, $key) {
$value *= 2;
});
array_walk_recursive()
函数array_walk_recursive()
函数可以对多维数组中的每个元素应用用户自定义函数。
$array = [1, [2, 3], 4];
array_walk_recursive($array, function(&$value, $key) {
$value *= 2;
});
array_replace()
函数array_replace()
函数可以用一个或多个数组的值替换第一个数组的值。
$array1 = [1, 2, 3];
$array2 = [4, 5];
$array = array_replace($array1, $array2);
array_merge()
函数array_merge()
函数可以将一个或多个数组合并为一个数组。
$array1 = [1, 2, 3];
$array2 = [4, 5];
$array = array_merge($array1, $array2);
array_chunk()
函数array_chunk()
函数可以将数组分割为多个小块。
$array = [1, 2, 3, 4, 5];
$array = array_chunk($array, 2);
array_slice()
函数array_slice()
函数可以从数组中取出一段。
$array = [1, 2, 3, 4, 5];
$array = array_slice($array, 2, 2);
array_splice()
函数array_splice()
函数可以移除数组的一部分并用其他值替换。
$array = [1, 2, 3, 4, 5];
array_splice($array, 2, 2, [6, 7]);
array_unique()
函数array_unique()
函数可以移除数组中的重复值。
$array = [1, 2, 2, 3, 4, 4, 5];
$array = array_unique($array);
array_flip()
函数array_flip()
函数可以交换数组中的键和值。
$array = ["a" => 1, "b" => 2, "c" => 3];
$array = array_flip($array);
array_keys()
函数array_keys()
函数可以返回数组中的所有键。
$array = ["a" => 1, "b" => 2, "c" => 3];
$array = array_keys($array);
array_values()
函数array_values()
函数可以返回数组中的所有值。
$array = ["a" => 1, "b" => 2, "c" => 3];
$array = array_values($array);
array_column()
函数array_column()
函数可以返回数组中指定列的值。
$array = [
["id" => 1, "name" => "John"],
["id" => 2, "name" => "Jane"],
];
$array = array_column($array, "name");
array_count_values()
函数array_count_values()
函数可以统计数组中所有值出现的次数。
$array = [1, 2, 2, 3, 4, 4, 5];
$array = array_count_values($array);
array_diff()
函数array_diff()
函数可以计算数组的差集。
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$array = array_diff($array1, $array2);
array_intersect()
函数array_intersect()
函数可以计算数组的交集。
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$array = array_intersect($array1, $array2);
array_merge_recursive()
函数array_merge_recursive()
函数可以递归地合并一个或多个数组。
$array1 = ["a" => 1, "b" => 2];
$array2 = ["b" => 3, "c" => 4];
$array = array_merge_recursive($array1, $array2);
array_replace_recursive()
函数array_replace_recursive()
函数可以递归地用一个或多个数组替换第一个数组的值。
$array1 = ["a" => 1, "b" => 2];
$array2 = ["b" => 3, "c" => 4];
$array = array_replace_recursive($array1, $array2);
array_multisort()
函数array_multisort()
函数可以对多个数组或多维数组进行排序。
$array1 = [3, 1, 2];
$array2 = ["c", "a", "b"];
array_multisort($array1, $array2);
array_reverse()
函数array_reverse()
函数可以返回一个元素顺序相反的数组。
$array = [1, 2, 3, 4, 5];
$array = array_reverse($array);
array_search()
函数array_search()
函数可以在数组中搜索给定的值并返回对应的键。
$array = ["a" => 1, "b" => 2, "c" => 3];
$key = array_search(2, $array);
array_shift()
函数array_shift()
函数可以将数组的第一个元素移出并返回。
$array = [1, 2, 3, 4, 5];
$firstElement = array_shift($array);
array_unshift()
函数array_unshift()
函数可以将一个或多个元素插入数组的开头。
$array = [1, 2, 3, 4, 5];
array_unshift($array, 0);
array_pop()
函数array_pop()
函数可以将数组的最后一个元素移出并返回。
$array = [1, 2, 3, 4, 5];
$lastElement = array_pop($array);
array_push()
函数array_push()
函数可以将一个或多个元素压入数组的末尾。
$array = [1, 2, 3, 4, 5];
array_push($array, 6);
array_rand()
函数array_rand()
函数可以从数组中随机取出一个或多个键。
$array = [1, 2, 3, 4, 5];
$randomKey = array_rand($array);
array_sum()
函数array_sum()
函数可以计算数组中所有值的和。
$array = [1, 2, 3, 4, 5];
$sum = array_sum($array);
array_product()
函数array_product()
函数可以计算数组中所有值的乘积。
$array = [1, 2, 3, 4, 5];
$product = array_product($array);
array_change_key_case()
函数array_change_key_case()
函数可以将数组中的所有键名转换为大写或小写。
$array = ["a" => 1, "B" => 2, "c" => 3];
$array = array_change_key_case($array, CASE_UPPER);
array_key_exists()
函数array_key_exists()
函数可以检查数组中是否存在指定的键。
$array = ["a" => 1, "b" => 2, "c" => 3];
$exists = array_key_exists("b", $array);
in_array()
函数in_array()
函数可以检查数组中是否存在指定的值。
$array = [1, 2, 3, 4, 5];
$exists = in_array(3, $array);
array_diff_assoc()
函数array_diff_assoc()
函数可以计算数组的差集,包括键名和键值。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "b" => 4, "c" => 3];
$array = array_diff_assoc($array1, $array2);
array_intersect_assoc()
函数array_intersect_assoc()
函数可以计算数组的交集,包括键名和键值。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "b" => 4, "c" => 3];
$array = array_intersect_assoc($array1, $array2);
array_diff_key()
函数array_diff_key()
函数可以计算数组的差集,仅比较键名。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "d" => 4, "e" => 5];
$array = array_diff_key($array1, $array2);
array_intersect_key()
函数array_intersect_key()
函数可以计算数组的交集,仅比较键名。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "d" => 4, "e" => 5];
$array = array_intersect_key($array1, $array2);
array_diff_uassoc()
函数array_diff_uassoc()
函数可以计算数组的差集,使用用户自定义的回调函数比较键名和键值。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "b" => 4, "c" => 3];
$array = array_diff_uassoc($array1, $array2, function($a, $b) {
return $a <=> $b;
});
array_intersect_uassoc()
函数array_intersect_uassoc()
函数可以计算数组的交集,使用用户自定义的回调函数比较键名和键值。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "b" => 4, "c" => 3];
$array = array_intersect_uassoc($array1, $array2, function($a, $b) {
return $a <=> $b;
});
array_diff_ukey()
函数array_diff_ukey()
函数可以计算数组的差集,使用用户自定义的回调函数比较键名。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "d" => 4, "e" => 5];
$array = array_diff_ukey($array1, $array2, function($a, $b) {
return $a <=> $b;
});
array_intersect_ukey()
函数array_intersect_ukey()
函数可以计算数组的交集,使用用户自定义的回调函数比较键名。
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 1, "d" => 4, "e" => 5];
$array = array_intersect_ukey($array1, $array2, function($a, $b) {
return $a <=> $b;
});
array_udiff()
函数array_udiff()
函数可以计算数组的差集,使用用户自定义的回调函数比较值。
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$array = array_udiff($array1, $array2, function($a, $b) {
return $a <=> $b;
});
array_uintersect()
函数array_uintersect()
函数可以计算数组的交集,使用用户自定义的回调函数比较值。
```php $array1 = [1, 2, 3, 4, 5]; $array2 = [3, 4,