首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php中一次将所有数组元素相乘而无需迭代?

如何在php中一次将所有数组元素相乘而无需迭代?
EN

Stack Overflow用户
提问于 2011-01-24 14:09:14
回答 5查看 2.1K关注 0票数 0

我有一个超过25k个元素组成的数组。所有数组值都是整数。NOw我想把这个数组的所有元素乘以某个数字"n"...如果不使用a遍历每个元素,比如不使用foreach,我如何做到这一点?

我正在寻找这个bcoz迭代通过这么大的数组可能会影响性能…

深度

EN

回答 5

Stack Overflow用户

发布于 2011-01-24 14:11:36

代码语言:javascript
运行
复制
function multiplyElements( $inElem ){
  return $inElem * n; // Where "n" is the number to multiply all elements by
}

$yourArray = array_map( 'multiplyElements' , $yourArray );
票数 1
EN

Stack Overflow用户

发布于 2011-01-24 16:33:23

“可能会影响性能”不是优化的有效理由。确保它确实会影响性能。如果您确定这会对性能产生负面影响,请考虑使用Spl数据结构之一

这仍然会让您进行迭代,但对于大型数据集,这些数据结构可以在执行速度和内存消耗方面产生差异。

票数 1
EN

Stack Overflow用户

发布于 2011-01-24 14:11:54

有一个array_sum()函数,但没有数组乘数函数。

您将需要迭代(或使用array_map(),它只是将迭代从您那里抽象出来)。

我还会确保您的数字不会超出PHP的最大整数大小(请在您的平台上检查PHP_INT_MAX )。您可能需要使用gcmul()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4779122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档