2016-07-13 13 views
0

ich habe ein mehrdimensionales Array mit diesem folgenden Array $menu_choice_in:, wie Daten mit mehrdimensionalen Arrays berechnen

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) { 
    } 
} 

i die additional_price zu sum versuchen wollen und sollen sie in mehrdimensionales Array sein zurückzukehren, wie folgt aus:

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

Jungs können Sie mir helfen? Danke (:

+0

Und wo Sie stecken sind Schleife durch das Array und rufen Sie 'array_sum()' auf der Spalte 'additional_price' auf. – Rizier123

Antwort

2

Short-Lösung mit array_walk, array_sum und array_column (verfügbar seit PHP 5.5) Funktionen:

$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); 
0

Dies sollte ... arbeiten

$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); 
} 
Verwandte Themen