我有一个超过25k个元素组成的数组。所有数组值都是整数。NOw我想把这个数组的所有元素乘以某个数字"n"...如果不使用a遍历每个元素,比如不使用foreach,我如何做到这一点?
我正在寻找这个bcoz迭代通过这么大的数组可能会影响性能…
深度
发布于 2011-01-24 14:11:36
function multiplyElements( $inElem ){
return $inElem * n; // Where "n" is the number to multiply all elements by
}
$yourArray = array_map( 'multiplyElements' , $yourArray );
发布于 2011-01-24 16:33:23
“可能会影响性能”不是优化的有效理由。确保它确实会影响性能。如果您确定这会对性能产生负面影响,请考虑使用Spl数据结构之一
这仍然会让您进行迭代,但对于大型数据集,这些数据结构可以在执行速度和内存消耗方面产生差异。
发布于 2011-01-24 14:11:54
有一个array_sum()
函数,但没有数组乘数函数。
您将需要迭代(或使用array_map()
,它只是将迭代从您那里抽象出来)。
我还会确保您的数字不会超出PHP的最大整数大小(请在您的平台上检查PHP_INT_MAX
)。您可能需要使用gcmul()
。
https://stackoverflow.com/questions/4779122
复制相似问题