PHP数组计算函数

array_diff:计算数组的差集,接受多个数组,返回的结果为在第一个数组中但不在其他数组中的值组成的数组。返回的数组的值保留键名不变。在通过字符串的表达式比较时使用了严格检查

array_​udiff:与array_diff唯一不同是使用回调函数比较值来计算数组的差集。回调函数接受两个参数,当第一个参数大于等于或小于第二个参数时分别返回一个大于、等于或小于零的整数。

array_diff_key:与array_diff唯一的区别是使用键名比较计算数组的差集。

array_diff_ukey:与array_diff_key唯一的区别是使用回调函数对键名比较。

array_diff_assoc:与array_diff唯一的区别是除了比较值以外还会比较键名。

array_diff_uassoc:与array_diff_assoc唯一的区别是使用回调函数对键名比较。

array_udiff_assoc:与array_diff_assoc唯一的区别是使用回调函数对值比较。

array_​udiff_​uassoc:与array_diff_assoc的区别是使用回调函数对键名和值比较,除了要进行比较的数组外还需要传入两个函数,第一个为值比较函数,第二个为键名比较函数。

array_intersect:计算数组的交集。接受多个数组,返回的结果为在第一个数组中并且同时也在其他数组中的值组成的数组。返回的数组的值保留键名不变。在通过字符串的表达式比较时使用了严格检查

array_uintersect:与array_intersect唯一不同是使用回调函数比较值来计算数组的交集。回调函数接受两个参数,当第一个参数大于等于或小于第二个参数时分别返回一个大于、等于或小于零的整数。

array_intersect_key:与array_intersect唯一的区别是使用键名计算数组的交集。

array_intersect_ukey:与array_intersect_key唯一的区别是使用回调函数对键名比较。

array_intersect_assoc:与array_intersect唯一的区别是除了比较值以外还会比较键名。

array_intersect_uassoc:与array_intersect_assoc唯一的区别是使用回调函数对键名比较。

array_uintersect_assoc:与array_intersect_assoc唯一的区别是使用回调函数对值比较。

array_uintersect_uassoc:与array_intersect_assoc的区别是使用回调函数对键名和值比较,除了要进行比较的数组外还需要传入两个函数,第一个为值比较函数,第二个为键名比较函数。

array_​product:计算数组中所有值的乘积,返回结果为整数或浮点数。如果传入空的数组则返回1,PHP5.3.6之前会返回0。

array_sum:对数组中所有值求和,返回结果为整数或浮点数。如果传入空的数组则返回0。

array_count_values:计算数组中所有值出现的次数,返回一个数组,其键是数组的值,值为数组的值出现的次数。对于数组里面每个不是字符串或整型的元素会产生一个警告。

count:计算数组中的单元数目,或对象中的属性个数。接受两个参数,第一个参数为数组,或者Countable对象,如果传入的既不是数组也不是Countable对象,则返回1,如果传入的是null、空数组或对象没有初始化的变量,则返回0。从PHP7.2起。如果传入null或者不是Countable对象会产生警告,第二个参数为可选的递归标识,表示是否递归的对数组计数,默认为COUNT_NORMAL。

sizeof:count 的别名。

<?php
$ar1=array("a","b","c","d","e","f");
$ar2=array("a","b","d","f","g","h");
$ar3=array("a","c","g");
$ar4=array("1"=>"a","2"=>"b","3"=>"c",4=>"4");
$ar5=array(1=>"a","02"=>"b",3=>"e",4=>"04");
$ar6=array(1,2,3,4,5,6);
function compare_func($v1, $v2)
{
    if ($v1 == $v2)
        return 0;
    else if ($v1 > $v2)
        return 1;
    else
        return -1;
}
var_dump(array_diff($ar1,$ar2,$ar3));
var_dump(array_udiff($ar4,$ar5,compare_func));
var_dump(array_diff_key($ar4,$ar5));
var_dump(array_diff_ukey($ar4,$ar5,compare_func));
var_dump(array_diff_assoc($ar4,$ar5));
var_dump(array_diff_uassoc($ar4,$ar5,compare_func));
var_dump(array_udiff_assoc($ar4,$ar5,compare_func));
var_dump(array_udiff_uassoc($ar4,$ar5,compare_func));
var_dump(array_intersect($ar4,$ar5));
var_dump(array_uintersect($ar4,$ar5,compare_func));
var_dump(array_intersect_key($ar4,$ar5));
var_dump(array_intersect_ukey($ar4,$ar5,compare_func));
var_dump(array_intersect_assoc($ar4,$ar5));
var_dump(array_intersect_uassoc($ar4,$ar5,compare_func));
var_dump(array_uintersect_assoc($ar4,$ar5,compare_func));
var_dump(array_uintersect_uassoc($ar4,$ar5,compare_func));
echo array_product($ar6)."\n";
echo array_sum($ar6)."\n";
var_dump(array_count_values($ar1));
echo count($ar1);
?>

函数区别对照表

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值