2009-10-12 1 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_sum и array_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

Что-то вроде этого?

$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 в каждом цикле. Эта переменная имеет в первом раунде «Обувь» как ключ и массив как значение. Таким образом, вы можете назвать это так же, как и обычный массив.

Смежные вопросы