PHP编程:第n级多维数组的总和

时间:2015-11-10 09:07:31

标签: php

我陷入困境,无法用不同类型编码多维数组的总和:下面是一个示例实例。

#stop2SX{
    background-image:url(http://placehold.it/350x150);
    background-repeat:no-repeat;
    width: 50%;
    height: 100%;
    float: left;
    display: inline-block;
}
#stop2DX{
    background-image:url(http://placehold.it/350x150);
    background-repeat:no-repeat;
    width: 50%;
    height: 100%;
    float: right;
    display: inline-block;
}

我的代码如下:

$multi_dimes_array = array(
    "1"=>array
    (1,2,5,6,7),
    "2"=> "Apple",
    "3"=> array("1"=>array('some_more',
                'banana',
                'ship',array(1,5,6,7,array(4,4,4,4))))
);

但是我收到了错误。

2 个答案:

答案 0 :(得分:1)

您应该实现递归函数:

function deep_array_sum($arr) {
    $ret = 0;
    foreach($arr as $val) {
        if (is_array($val))
            $ret += deep_array_sum($val);
        else if(is_numeric($val))
            $ret += $val;
    }
    return $ret;
}

答案 1 :(得分:0)

我看到它的方式,你需要一个递归函数或许多fors,ifs和whiles。所以它是递归的。

function array_sums($arraypart)
{
  if(!is_array($arraypart))
  {
   return intval($arraypart);
  }
  else
  {
      $sub_sum = 0;
      foreach($arraypart as $new_part)
      {
          $sub_sum += array_sums($new_part);
      }
      return $sub_sum;
  }
}

也许这些方面的东西? 它是这样的: 如果它不是数组,请尝试获取其整数(或浮点)值并返回它。 (我看到你也有一些字符串,如果不解析可能会很危险,实际上你打算如何添加字符串?)

如果它是一个数组,它的元素的foreach,再次调用该函数,求和它们的返回值,并自己返回它们。