<?php 
 
include __DIR__ . "/../src/matrix.php"; 
 
use divengine\matrix; 
 
$F_AMOUNT = fn($row, $col, $matrix) => $matrix->get($row, $col - 2) * $matrix->get($row, $col - 1); 
$F_TOTAL = fn($row, $col, $matrix) => array_sum($matrix->vertical($col, 1, $row - 1)); 
$F_AVG = fn($row, $col, $matrix) => number_format($F_TOTAL($row, $col, $matrix) / ($row - 1), 1); 
$F_BOTTOM_RIGHT = fn(matrix $matrix) => $matrix->get($matrix->getTotalRows() - 1, $matrix->getTotalColumns() - 1); 
 
// sheet of products 
$products = new matrix([ 
            /*  0         1         2           3    */ 
    /* 0 */ ["Product", "Price",  "Count",   "Amount"], 
            //---------------------------------------- 
    /* 1 */ ["Apple",         5,        2,  $F_AMOUNT], 
    /* 2 */ ["Banana",        6,        3,  $F_AMOUNT], 
    /* 3 */ ["Orange",        6,       10,  $F_AMOUNT], 
            //----------------------------------------- 
    /* 4 */ ["Totals",  $F_AVG,  $F_TOTAL,   $F_TOTAL] 
]); 
 
// sheet of services 
$services = new matrix([ 
           /*  0          1         2           3    */ 
   /* 0 */ ["Service",  "Price",  "Count",    "Amount"], 
           //----------------------------------------- 
   /* 1 */ ["Clean",         10,        2,   $F_AMOUNT], 
   /* 2 */ ["Paint",         35,        3,   $F_AMOUNT], 
   /* 3 */ ["Repair",         6,       10,   $F_AMOUNT], 
           //------------------------------------------ 
   /* 4 */ ["Totals", $F_AVG,   $F_TOTAL,     $F_TOTAL] 
]); 
 
$T_PRODUCTS = fn() => $F_BOTTOM_RIGHT($products); 
$T_SERVICES = fn() => $F_BOTTOM_RIGHT($services); 
 
// sheet of earnings 
$earnings = new matrix([ 
    ["\t",           "Amount"], 
    //------------------------ 
    ["Products",  $T_PRODUCTS], 
    ["Services",  $T_SERVICES], 
    //------------------------ 
    ["Earnings",     $F_TOTAL] 
]); 
 
echo $products->formatTXT(true); 
echo "\n"; 
echo $services->formatTXT(true); 
echo "\n"; 
echo $earnings->formatTXT(true); 
echo "\n"; 
 
$products->set(1, 1, 10); // $earnings will be updated automatically 
 
echo $products->formatTXT(true); 
echo "\n"; 
echo $earnings->formatTXT(true); 
echo "\n";
 
 |