array_* - 部分 PHP 数组操作函数
array_sum
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
array_sum — 对数组中所有值求和
说明
array_sum(array $array): int|float
array_sum() 将数组中的所有值相加,并返回结果。
参数
array
输入的数组。
返回值
所有值的和以整数或浮点数的结果返回,array 为空时则返回 0。
范例
<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>
以上例程会输出:
sum(a) = 20
sum(b) = 6.9
array_product
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
array_product — 计算数组中所有值的乘积
说明
array_product(array $array): int|float
array_product() 以整数或浮点数返回一个数组中所有值的乘积。
参数
array
这个数组。
返回值
以整数或浮点数返回一个数组中所有值的乘积。
范例
<?php
$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";
?>
以上例程会输出:
product(a) = 384
product(array()) = 1
array_intersect
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_intersect — 计算数组的交集
说明
array_intersect(array $array, array ...$arrays): array
array_intersect() 返回一个数组,该数组包含了所有在 array 和其它参数数组中同时存在的值。注意,键名保留不变。
参数
array
要检查的数组,作为主值。
arrays
要被对比的数组。
返回值
返回一个数组,该数组包含了所有在 array 和其它参数数组中同时存在的值。
更新日志
版本 | 说明 |
---|---|
8.0.0 | 现在可以仅使用一个参数调用此函数。以前,至少需要两个参数。 |
范例
<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
?>
以上例程会输出:
Array
(
[a] => green
[0] => red
)
注释
注意: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说:当字符串的表达形式相同时。
array_search
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
array_search — 在数组中搜索给定的值,如果成功则返回首个相应的键名
说明
array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
在 haystack 中搜索 needle。
参数
needle
搜索的值。
注意:
如果 needle 是字符串,则比较以区分大小写的方式进行。
haystack
这个数组。
strict
如果可选的第三个参数 strict 为 true,则 array_search() 将在 haystack 中检查完全相同的元素。 这意味着同样严格比较 haystack 里 needle 的 类型,并且对象需是同一个实例。
返回值
如果找到了 needle 则返回它的键,否则返回 false。
如果 needle 在 haystack 中出现不止一次,则返回第一个匹配的键。要返回所有匹配值的键,应该用 array_keys() 加上可选参数 search_value 来代替。
警告
此函数可能返回布尔值 false,但也可能返回等同于 false 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。
范例
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
?>
array_flip
(PHP 4, PHP 5, PHP 7, PHP 8)
array_flip — 交换数组中的键和值
说明
array_flip(array $array): array
array_flip() 返回一个反转后的 array,例如 array 中的键名变成了值,而 array 中的值成了键名。
注意 array 中的值需要能够作为合法的键名(例如需要是 int 或者 string)。如果类型不对,将出现一个警告,并且有问题的键/值对将不会出现在结果里。
如果同一个值出现多次,则最后一个键名将作为它的值,其它键会被丢弃。
参数
array
要交换键/值对的数组。
返回值
返回交换后的数组。
范例
示例 #1 array_flip() 例子
<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);
print_r($flipped);
?>
以上例程会输出:
Array
(
[oranges] => 0
[apples] => 1
[pears] => 2
)
示例 #2 array_flip() 例子 : 冲突
<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);
print_r($flipped);
?>
以上例程会输出:
Array
(
[1] => b
[2] => c
)
array_combine
(PHP 5, PHP 7, PHP 8)
array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
说明
array_combine(array $keys, array $values): array
返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。
参数
keys
将被作为新数组的键。非法的值将会被转换为字符串类型(string)。
values
将被作为 Array 的值。
返回值
返回合并后的 array。
错误/异常
自 PHP 8.0.0 起,如果 keys 和 values 的元素数量不同,将会抛出 ValueError。在 PHP 8.0.0 之前,会引发 E_WARNING。
更新日志
版本 | 说明 |
---|---|
8.0.0 | 如果每个数组的元素数量不相等,现在 array_combine() 将会抛出 ValueError,之前此方法返回 false。 |
范例
示例 #1 一个 array_combine() 简单的例子
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
以上例程会输出:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)