Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP编程:n级多维数组之和_Php - Fatal编程技术网

PHP编程:n级多维数组之和

PHP编程:n级多维数组之和,php,Php,我被卡住了,无法对不同类型的多维数组的和进行编码:下面是一个示例 $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)))) ); 我

我被卡住了,无法对不同类型的多维数组的和进行编码:下面是一个示例

$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))))
);
我的代码如下所示:

foreach ($multi_dimes_array as $val) {           
  if(is_array($val))
  {
    $total = $total + $val;
  }
}

但是我得到了一个错误。

您应该实现一个递归函数:

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;
}

在我看来,你需要一个递归函数或者一大堆的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;
  }
}
也许是这样的? 事情是这样的: 如果它不是数组,请尝试获取其整数(或浮点)值并返回它。 (我看到您也有一些字符串,如果不进行分析可能会很危险,实际上您打算如何添加这些字符串?)


如果它是一个数组,对于它的每个元素,再次调用该函数,求其返回值的和,然后自己返回。

要求和什么?1,2,5,6,7或4,4,4?我想计算给定数组的和。这是一个样本数组。我有一个未知的N级数组,既有数字也有字母。