嵌套数组问题的初学者 - 将值一起添加

时间:2009-10-12 19:32:39

标签: php arrays

假设我有一个这样的数组:

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

我无法遍历多维数组并添加元素。 PHP初学者有什么提示吗?谢谢。

4 个答案:

答案 0 :(得分:1)

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

这比使用array_map更具可读性,但提供相同的输出。

答案 1 :(得分:1)

如果您想要所有产品的总价格,包括运费,您可以使用array_sumarray_map在没有明确循环的情况下进行计算:

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

请注意array_maparray_sum应用于每个内部数组,然后array_sum最终应用于此操作的结果。

答案 2 :(得分:0)

array_sum: http://php.net/manual/en/function.array-sum.php

代码粗略草图:

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

答案 3 :(得分:0)

这样的东西?

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

您拥有的是每个循环中名为$ product的变量。该变量在第一轮“Shoes”中作为键,数组作为值。所以你可以像普通数组一样调用它。