2009-10-12 48 views
0

假設我有一個這樣的數組:初學者嵌套陣列的問題 - 添加值一起

$products = array('Shoes' => array('price' => 49.99, 'shipping' => 5), 
        'Shirt' => array('price' => 29.99, 'shipping' => 3), 
        'Socks'=> array('price' => 2.99, 'shipping' => 0) 
        ); 

我無法穿越多維數組和添加的元素。有沒有PHP初學者的提示?謝謝。

回答

1

如果你想要的所有產品,包括運費的總價格,就可以計算出它不使用array_sumarray_map外在的循環:

echo array_sum(array_map('array_sum', $products)); // prints 90.97 

注意array_map適用array_sum到每個內部陣列,後其中array_sum最終應用於此操作的結果。

1
$price = 0; 
foreach($products as $product) { 
    $price += array_sum($product); 
} 

這具有比使用array_map更易讀的優點,但提供相同的輸出。

0

array_sum:

$total = 0; 
foreach($products as $item => $amount_array){ 
    $total += array_sum($amount_array); 
} 
0

事情是這樣的:代碼 http://php.net/manual/en/function.array-sum.php

草圖?

$products = array('Shoes' => array('price' => 49.99, 'shipping' => 5), 
        'Shirt' => array('price' => 29.99, 'shipping' => 3), 
        'Socks'=> array('price' => 2.99, 'shipping' => 0) 
        ); 

$total = 0; 
foreach($products as $product) 
{ 
    $total += $product["price"]; 
} 

echo $total; 

你有什麼是每個循環的變量名爲$產品。該變量在第一輪中以「Shoes」作爲鍵和數組作爲值。所以你可以像調整普通數組那樣調用它。