在PHP中,数组是一种非常灵活的数据结构,可以用来存储多个值。PHP支持多种定义数组的方式,以下是常见的几种:
索引数组是最常见的数组类型,使用数字作为键(索引)。
$array = array("apple", "banana", "cherry");
// 或者
$array = ["apple", "banana", "cherry"];
关联数组使用字符串作为键,键值对的形式存储数据。
$array = array("name" => "John", "age" => 30, "city" => "New York");
// 或者
$array = ["name" => "John", "age" => 30, "city" => "New York"];
多维数组是包含一个或多个数组的数组。可以是索引数组、关联数组或两者的混合。
$array = array(
array("apple", "banana", "cherry"),
array("name" => "John", "age" => 30)
);
// 或者
$array = [
["apple", "banana", "cherry"],
["name" => "John", "age" => 30]
];
PHP数组可以同时包含索引数组和关联数组的元素。
$array = array("apple", "banana", "name" => "John", "age" => 30);
// 或者
$array = ["apple", "banana", "name" => "John", "age" => 30];
可以定义一个空数组,稍后再添加元素。
$array = array();
// 或者
$array = [];
range()
函数创建数组range()
函数可以生成一个包含指定范围内元素的数组。
$array = range(1, 10); // 生成1到10的数组
array_fill()
函数创建数组array_fill()
函数可以创建一个填充指定值的数组。
$array = array_fill(0, 5, "apple"); // 创建一个包含5个"apple"的数组
array_combine()
函数创建数组array_combine()
函数可以将两个数组合并为一个关联数组,其中一个数组作为键,另一个数组作为值。
$keys = array("name", "age", "city");
$values = array("John", 30, "New York");
$array = array_combine($keys, $values);
explode()
函数创建数组explode()
函数可以将字符串按指定的分隔符拆分为数组。
$string = "apple,banana,cherry";
$array = explode(",", $string);
list()
函数解构数组list()
函数可以将数组中的值赋给一组变量。
$array = ["apple", "banana", "cherry"];
list($fruit1, $fruit2, $fruit3) = $array;
compact()
函数创建数组compact()
函数可以将变量名作为键,变量值作为值,创建一个关联数组。
$name = "John";
$age = 30;
$city = "New York";
$array = compact("name", "age", "city");
array()
函数创建数组array()
函数是PHP中最常用的创建数组的方式。
$array = array(1, 2, 3, 4, 5);
[]
语法创建数组从PHP 5.4开始,可以使用[]
语法来创建数组,这是更简洁的方式。
$array = [1, 2, 3, 4, 5];
array_map()
函数创建数组array_map()
函数可以将回调函数应用到数组的每个元素上,并返回一个新的数组。
$array = array(1, 2, 3, 4, 5);
$newArray = array_map(function($value) {
return $value * 2;
}, $array);
array_filter()
函数创建数组array_filter()
函数可以根据回调函数的返回值过滤数组中的元素。
$array = array(1, 2, 3, 4, 5);
$newArray = array_filter($array, function($value) {
return $value % 2 == 0;
});
array_reduce()
函数创建数组array_reduce()
函数可以将数组中的元素通过回调函数迭代缩减为单个值。
$array = array(1, 2, 3, 4, 5);
$sum = array_reduce($array, function($carry, $item) {
return $carry + $item;
}, 0);
array_slice()
函数创建数组array_slice()
函数可以从数组中提取一部分元素,并返回一个新的数组。
$array = array(1, 2, 3, 4, 5);
$newArray = array_slice($array, 1, 3);
array_splice()
函数创建数组array_splice()
函数可以从数组中移除一部分元素,并返回被移除的元素。
$array = array(1, 2, 3, 4, 5);
$removed = array_splice($array, 1, 3);
array_merge()
函数创建数组array_merge()
函数可以将多个数组合并为一个数组。
$array1 = array(1, 2, 3);
$array2 = array(4, 5, 6);
$newArray = array_merge($array1, $array2);
array_replace()
函数创建数组array_replace()
函数可以用第二个数组中的元素替换第一个数组中的元素。
$array1 = array("a" => 1, "b" => 2);
$array2 = array("b" => 3, "c" => 4);
$newArray = array_replace($array1, $array2);
array_flip()
函数创建数组array_flip()
函数可以将数组中的键和值互换。
$array = array("name" => "John", "age" => 30);
$newArray = array_flip($array);
array_unique()
函数创建数组array_unique()
函数可以移除数组中的重复值。
$array = array(1, 2, 2, 3, 4, 4, 5);
$newArray = array_unique($array);
array_column()
函数创建数组array_column()
函数可以从多维数组中提取指定列的值。
$array = array(
array("id" => 1, "name" => "John"),
array("id" => 2, "name" => "Jane")
);
$names = array_column($array, "name");
array_keys()
函数创建数组array_keys()
函数可以返回数组中所有的键。
$array = array("name" => "John", "age" => 30);
$keys = array_keys($array);
array_values()
函数创建数组array_values()
函数可以返回数组中所有的值。
$array = array("name" => "John", "age" => 30);
$values = array_values($array);
array_chunk()
函数创建数组array_chunk()
函数可以将数组分割为多个小块。
$array = array(1, 2, 3, 4, 5);
$chunks = array_chunk($array, 2);
array_pad()
函数创建数组array_pad()
函数可以将数组填充到指定长度。
$array = array(1, 2, 3);
$newArray = array_pad($array, 5, 0);
array_fill_keys()
函数创建数组array_fill_keys()
函数可以使用指定的键和值创建一个数组。
$keys = array("name", "age", "city");
$array = array_fill_keys($keys, "unknown");
array_rand()
函数创建数组array_rand()
函数可以从数组中随机取出一个或多个键。
$array = array("apple", "banana", "cherry");
$randomKey = array_rand($array);
array_walk()
函数创建数组array_walk()
函数可以对数组中的每个元素应用用户自定义函数。
$array = array(1, 2, 3, 4, 5);
array_walk($array, function(&$value, $key) {
$value *= 2;
});
array_walk_recursive()
函数创建数组array_walk_recursive()
函数可以对多维数组中的每个元素应用用户自定义函数。
$array = array(1, array(2, 3), 4, 5);
array_walk_recursive($array, function(&$value, $key) {
$value *= 2;
});
array_diff()
函数创建数组array_diff()
函数可以计算数组的差集。
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 4);
$diff = array_diff($array1, $array2);
array_intersect()
函数创建数组array_intersect()
函数可以计算数组的交集。
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 4);
$intersect = array_intersect($array1, $array2);
array_reverse()
函数创建数组array_reverse()
函数可以返回一个元素顺序相反的数组。
$array = array(1, 2, 3, 4, 5);
$reversed = array_reverse($array);
array_sum()
函数创建数组array_sum()
函数可以计算数组中所有值的和。
$array = array(1, 2, 3, 4, 5);
$sum = array_sum($array);
array_product()
函数创建数组array_product()
函数可以计算数组中所有值的乘积。
$array = array(1, 2, 3, 4, 5);
$product = array_product($array);
array_count_values()
函数创建数组array_count_values()
函数可以统计数组中每个值出现的次数。
$array = array(1, 2, 2, 3, 4, 4, 5);
$counts = array_count_values($array);
array_change_key_case()
函数创建数组array_change_key_case()
函数可以将数组的键转换为大写或小写。
$array = array("Name" => "John", "Age" => 30);
$lowercase = array_change_key_case($array, CASE_LOWER);
array_merge_recursive()
函数创建数组array_merge_recursive()
函数可以递归地合并一个或多个数组。
$array1 = array("name" => "John", "age" => 30);
$array2 = array("name" => "Jane", "city" => "New York");
$merged = array_merge_recursive($array1, $array2);
array_replace_recursive()
函数创建数组array_replace_recursive()
函数可以递归地用一个数组替换另一个数组中的元素。
$array1 = array("name" => "John", "age" => 30);
$array2 = array("name" => "Jane", "city" => "New York");
$replaced = array_replace_recursive($array1, $array2);
array_multisort()
函数创建数组array_multisort()
函数可以对多个数组或多维数组进行排序。
$array = array(3, 1, 2);
array_multisort($array);
array_udiff()
函数创建数组array_udiff()
函数可以使用用户自定义的比较函数计算数组的差集。
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 4);
$diff = array_udiff($array1, $array2, function($a, $b) {
return $a - $b;
});
array_uintersect()
函数创建数组array_uintersect()
函数可以使用用户自定义的比较函数计算数组的交集。
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 4);
$intersect = array_uintersect($array1, $array2, function($a, $b) {
return $a - $b;
});
array_diff_assoc()
函数创建数组array_diff_assoc()
函数可以计算数组的差集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 4);
$diff = array_diff_assoc($array1, $array2);
array_intersect_assoc()
函数创建数组array_intersect_assoc()
函数可以计算数组的交集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 2);
$intersect = array_intersect_assoc($array1, $array2);
array_diff_uassoc()
函数创建数组array_diff_uassoc()
函数可以使用用户自定义的比较函数计算数组的差集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 4);
$diff = array_diff_uassoc($array1, $array2, function($a, $b) {
return $a - $b;
});
array_intersect_uassoc()
函数创建数组array_intersect_uassoc()
函数可以使用用户自定义的比较函数计算数组的交集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 2);
$intersect = array_intersect_uassoc($array1, $array2, function($a, $b) {
return $a - $b;
});
array_udiff_assoc()
函数创建数组array_udiff_assoc()
函数可以使用用户自定义的比较函数计算数组的差集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 4);
$diff = array_udiff_assoc($array1, $array2, function($a, $b) {
return $a - $b;
});
array_uintersect_assoc()
函数创建数组array_uintersect_assoc()
函数可以使用用户自定义的比较函数计算数组的交集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 2);
$intersect = array_uintersect_assoc($array1, $array2, function($a, $b) {
return $a - $b;
});
array_udiff_uassoc()
函数创建数组array_udiff_uassoc()
函数可以使用用户自定义的比较函数计算数组的差集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 4);
$diff = array_udiff_uassoc($array1, $array2, function($a, $b) {
return $a - $b;
}, function($a, $b) {
return $a - $b;
});
array_uintersect_uassoc()
函数创建数组array_uintersect_uassoc()
函数可以使用用户自定义的比较函数计算数组的交集,包括键和值的比较。
$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("a" => 1, "b" => 2);
$intersect = array_uintersect_uassoc($array1, $array2, function($a, $b) {
return $a - $b;
}, function($a, $b) {
return $a - $b;
});