如何在 PHP 中打印来自两个相关关联数组的元素和值


How to print elements and values from two related associative arrays in PHP

我有两个关联数组。 $dpt_total是部门列表,以及这些部门的总数。 $cl_subtotal是部门、类和小计的多维数组。

我想显示部门

和总计,然后显示与该部门关联的类以及该类的小计。例如:

vdump($dpt_total);
array(2) {
'None' → float 132.88
'instore bakery' → float 786.24
}
Sizes: 2
vdump($cl_subtotal);
array(2) {
 'None' → array(1) {
 'None' → float 132.88
 }
'instore bakery' → array(10) {
  'pies' → float 70.94
  'cakes' → float 146.71
  'miscellaneous' → float 25.57
  'cookies' → float 52.38
  'brownies' → float 33.96
  'rolls' → float 143.02
  'danish' → float 90.42
  'bagels & pretzels' → float 85.68
  'breads' → float 55.73
  'dessert case' → float 81.83
 }
}

应显示这些:

Department     Class     Total
--------------------------------
None                     132.88
               None      132.88
Instore Bakery           786.24
               pies      70.94
               cakes     146.71
               misc      25.57
               cookies   52.38
              (and so on)

一个简单的嵌套 foreach 语句应该可以得到你想要的:

foreach($cl_subtotal as $department=>$classes){
    //formatting
    //also note you can use $department as a key for $dpt_total ex:
    //$dpt_total[$department] will give you the total for the department
    foreach($classes as $class=>$price){
        //formatting
    }
}

希望这有所帮助。

$tbl=array();
foreach($dpt_total as $key=>$val){
    $row=array($key,'',$val);
    $tbl[]=$row;
    $tmp=$cl_subtotal[$key];
    foreach($tmp as $key2=>val2){
        $row=array('',$key,$val);
        $tbl[]=$row;
    }
}
$table='<table><tr><th>Department</th><th>Class</th><th>Total</th></tr>'
foreach($tbl as $row){
    $table.='<tr>';
    foreach($row as $col){
        $table.='<td>'.$col.'</td>';
    }
    $table.='/<tr>';
}
$table.='</table>';