Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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 如何使用多维数组计算数据_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 如何使用多维数组计算数据

Php 如何使用多维数组计算数据,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个多维数组,其中包含以下数组$menu\u choice\u in: array(5) { [0]=> array(1) { [0]=> array(1) { ["additional_price"]=> string(3) "1.2" } } [1]=> array(2) { [0]=> array(1) { ["additional_price"]=> string(3) "

我有一个多维数组,其中包含以下数组
$menu\u choice\u in

array(5) {
  [0]=>
  array(1) {
    [0]=>
    array(1) {
      ["additional_price"]=>
      string(3) "1.2"
  }
}
[1]=>
array(2) {
  [0]=>
  array(1) {
    ["additional_price"]=>
    string(3) "1.2"
  }
  [1]=>
  array(1) {
    ["additional_price"]=>
    string(3) "1.2"
  }
}
[2]=>
array(2) {
  [0]=>
  array(1) {
    ["additional_price"]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    ["additional_price"]=>
    string(1) "2"
  }
}
[3]=>
array(2) {
  [0]=>
  array(1) {
    ["additional_price"]=>
    string(3) "2.1"
  }
  [1]=>
  array(1) {
    ["additional_price"]=>
    string(3) "2.8"
  }
}
  [4]=>
  array(0) {
  }
}
我想尝试
求和
附加价格
,并且应该将其返回到多维数组中,如下所示:

array(5) {
  [0]=>
  array(1) { 
    ["additional_price"]=>
     string(3) "1.2"    
  }
  [1]=>
  array(1) {      
    ["additional_price"]=>
    string(3) "2.4"
  }
  [2]=>
  array(1) {
    ["additional_price"]=>
    string(1) "3"
  }
  [3]=>
  array(1) {
    ["additional_price"]=>
    string(3) "4.9"
  }   
  [4]=>
  array(1) {
    ["additional_price"]=>
    string(3) "0"
  }
}
伙计们,你们能帮我吗?谢谢(:

这应该可以

$sum_additional_price = array();
foreach ($menu_choice_in as $subarray) {
    $additional_price = 0.0;

    foreach ($subarray as $subsubarray) {
        $additional_price += floatval($subsubarray['additional_price']);

    $sum_additional_price[] = array('additional_price' => (string)$additional_price);
}
这应该有用

$sum_additional_price = array();
foreach ($menu_choice_in as $subarray) {
    $additional_price = 0.0;

    foreach ($subarray as $subsubarray) {
        $additional_price += floatval($subsubarray['additional_price']);

    $sum_additional_price[] = array('additional_price' => (string)$additional_price);
}

使用
array\u walk
array\u sum
array\u column
(从PHP 5.5开始提供)函数的简短解决方案:

$result = [];
array_walk($menu_choice_in, function($v) use(&$result){
    $prices = array_column($v, "additional_price");
    $result[] = ["additional_price" => array_sum($prices)];
});

print_r($result);

使用
array\u walk
array\u sum
array\u column
(从PHP 5.5开始提供)函数的简短解决方案:

$result = [];
array_walk($menu_choice_in, function($v) use(&$result){
    $prices = array_column($v, "additional_price");
    $result[] = ["additional_price" => array_sum($prices)];
});

print_r($result);

您卡在哪里?在数组中循环,并在
附加价格
列上调用
array\u sum()
。您卡在哪里?在数组中循环,并在
附加价格
列上调用
array\u sum()