Проблема с массивом новичков, извлечение элементов из двумерного массива для отображения и управления - PullRequest
0 голосов
/ 14 октября 2009

Я изучаю массивы в PHP и хотел бы знать, как сделать что-то вроде извлечения и вычисления элементов в многомерном массиве, для небольшого упражнения с квитанцией, которое я пытаюсь:

$products = array('Textbook' =>  array('price' => 35.99, 'tax' => 0.08), 
                  'Notebook' =>  array('price' => 5.99,  'tax' => 0.08),
                  'Snack'    =>  array('price' => 0.99,  'tax' => 0) 
                 );

Моя проблема заключается в том, чтобы выяснить, как составлять списки товаров по отдельности, чтобы распечатать или рассчитать (например, умножить товар на налог с продаж), чтобы отобразить его в качестве квитанции. Я знаю свои HTML и CSS, я знаю, как выполнять базовые вычисления в PHP, но циклический просмотр многомерного массива застрял. Большое спасибо за любые советы.

Ответы [ 2 ]

3 голосов
/ 14 октября 2009

PHP имеет оператор foreach, который полезен для перебора массивов. Это работает так же хорошо для вложенных:

foreach($products as $name => $product)
    foreach($product as $fieldName => $fieldValue)
        // $products is the whole array
        // $product takes the value of each array in $products, one at a time
        // e.g. array('price' => 35.99, 'tax' => 0.08)
        // $name takes the value of the array key that maps to that value
        // e.g. 'Textbook'
        // $fieldName takes the name of each item in the sub array
        // e.g. 'price' or 'tax'
        // $fieldValue takes the value of each item in the sub array
        // e.g. 35.99 or 0.08
1 голос
/ 14 октября 2009
<?php

$subtotal = 0;
$tax = 0;

foreach ($products as $product){
    $subtotal += $product['price'];
    $tax += $product['tax'];
}

$grandtotal = $subtotal + $tax;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...