php计算多维数组某个值的和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php计算多维数组某个值的和相关的知识,希望对你有一定的参考价值。

num是每级标题的当前数量,我想计算出 标题1 当前包括所有子标题的数量和,然后计算出标题2 包括当前+所有子标题数量和,标题3 包括当前+所有子标题数量和,标题4 如果没有子标题就算本身就可以,如果还有子标题就继续包括子标题和。用php应该如何实现呢?大神,有点蒙,不知道该怎么弄了。

<?php //半伪代码体现一下想法,靠理解
function countSubjects($a)
    if(count($a['child'])==0) return 1; //"标题4 如果没有子标题就算本身就可以"
    $sum=0;
    foreach($a['child'] as $e) //"标题2 包括当前+所有子标题数量和,标题3 包括当前+所有子标题数量和"
        $sum+=countSubjects($e);
    return sum;

//调用,统计$a[1]的所有子标题
$a[1]['num']=countSubjects($a[1]);

追问

之前那个数据格式不对,正确格式是这样的。

参考技术A $value = '';//假设value是你要判断的值

$user = array("ID"=>array( "0","1","2"),"Day"=>array("5");
if(in_array($value,$user))
echo '$value与数组中的某值相等';
参考技术B 用递归实现

php 数组汇集

统计:

array_count_values     统计数组中所有的值出现的次数

array_product         计算数组中所有值的乘积
array_sum         计算数组中所有值的和
count             计算数组中的单元数目或对象中的属性个数
sizeof count() 的别名


搜索:
array_key_exists     检查给定的键名或索引是否存在于数组中
array_search         在数组中搜索给定的值,如果成功则返回相应的键名
in_array         检查数组中是否存在某个值


排序:
array_multisort     对多个数组或多维数组进行排序
arsort             对数组进行逆向排序并保持索引关系
asort             对数组进行排序并保持索引关系
krsort             对数组按照键名逆向排序
ksort             对数组按照键名排序
natcasesort         用“自然排序”算法对数组进行不区分大小写字母的排序
natsort         用“自然排序”算法对数组排序
rsort             对数组逆向排序
sort             对数组排序
uasort             使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort             使用用户自定义的比较函数对数组中的键名进行排序
usort             使用用户自定义的比较函数对数组中的值进行排序
shuffle         将数组打乱


交集:
array_intersect_assoc     带索引检查计算数组的交集
array_intersect_key    使用键名比较计算数组的交集
array_intersect_uassoc  带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey    用回调函数比较键名来计算数组的交集
array_intersect     计算数组的交集
array_key_exists     用回调函数比较键名来计算数组的交集
array_uintersect_assoc  带索引检查计算数组的交集,用回调函数比较数据
array_uintersect     计算数组的交集,用回调函数比较数据


差集:
array_udiff_assoc     带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc    带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff         用回调函数比较数据来计算数组的差集
array_diff_assoc     带索引检查计算数组的差集
array_diff_key         使用键名比较计算数组的差集
array_diff_uassoc     用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey     用回调函数对键名比较计算数组的差集
array_diff         计算数组的差集


获取数组的部分内容:
array_chunk         将一个数组分割成多个
array_filter         用回调函数过滤数组中的单元
array_keys         返回数组中所有的键名
array_slice         从数组中取出一段
array_values         返回数组中所有的值


加工出所需数组:
array_combine         创建一个数组,用一个数组的值作为其键名,另一个数组的值作 为其值
array_fill         用给定的值填充数组
array_flip        交换数组中的键和值
array_map         将回调函数作用到给定数组的单元上
array_merge_recursive     递归地合并一个或多个数组
array_merge         合并一个或多个数组
array_pad         用值将数组填补到指定长度
array_push         将一个或多个单元压入数组的末尾(入栈)
array_reverse         返回一个单元顺序相反的数组
array_shift         将数组开头的单元移出数组
array_splice         把数组中的一部分去掉并用其它值取代
array_unique         移除数组中重复的值
array_unshift         在数组开头插入一个或多个单元
array_walk_recursive     对数组中的每个成员递归地应用用户函数
array_walk         对数组中的每个成员应用用户函数
compact         建立一个数组,包括变量名和它们的值
range             建立一个包含指定范围单元的数组


单元:
array_pop         将数组最后一个单元弹出(出栈)
array_rand         从数组中随机取出一个或多个单元
current         返回数组中的当前单元
pos current() 的别名
each             返回数组中当前的键/值对并将数组指针向前移动一步
end             将数组的内部指针指向最后一个单元
key             返回数组中当前单元的键名
list             把数组中的值赋给一些变量
next             将数组中的内部指针向前移动一位
prev             将数组的内部指针倒回一位
reset             将数组的内部指针指向第一个单元


其他:
array_reduce        用回调函数迭代地将数组简化为单一的值
extract            从数组中将变量导入到当前的符号表
array             新建一个数组

以上是关于php计算多维数组某个值的和的主要内容,如果未能解决你的问题,请参考以下文章

动态获取/设置多维数组中的值的函数

PHP:计算并显示多维数组的值[重复]

php 多个多维数组求交集

php怎样判断多维数组是不是为空

php无限极分类递归写入多维数组的方法

php 多维数据根据某个或多个字段排序