【问题标题】:What's the most elegant way to add up multidimensional arrays field by field in PHP?在 PHP 中逐字段添加多维数组的最优雅方法是什么?
【发布时间】:2010-01-29 10:24:05
【问题描述】:

我正在尝试逐个字段添加两个大小相同的多维数组。即:

$sum[4][3] = $a[4][3] + $b[4][3];

或者:

$a = array( array(1, 4), array(3, 2));
$b = array( array(9, 2), array(1, 0));

应该导致:

$sum = array( array(10, 6), array(4, 2));

有没有比遍历所有数组更优雅的方法?

【问题讨论】:

  • 你为什么不喜欢学习?
  • 优雅的问题...

标签: php multidimensional-array sum


【解决方案1】:

您可以使用函数 array_map() 这将函数应用于数组中的每个元素(在您的情况下为 $a )并对其应用回调函数,您可以通过提供另一个数组来为这些函数提供额外的参数(在您的情况下为 $b )。结果将是您示例的 $sum 。

回调函数需要检查参数是否为数组,如果是,则需要再次执行映射函数(因此它是一个递归函数),如果参数不是数组则需要添加函数。

http://nl3.php.net/manual/en/function.array-map.php

所以总而言之,做一个嵌套的 foreach 会更好:)

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2017-01-22
    • 2012-07-09
    • 2011-06-05
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多