<?php
function filter($r){
if(in_array($r['month'], array('Oct', 'Nov', 'Dec'))
&& $r['year'] == '2011'
&& $r['total'] < 10){
return True;
}
else{
return False;
}
}
function profit($r1){
return $r1['total'] - $r1['shipping'];
}
function add($x, $y){
return $x + $y;
}
$records = array(array("total" => 8.50, "shipping" => 1.99, "year" => '2011', "month" => "Dec"),
array("total" => 8.00, "shipping" => 0, "year" => '2011', "month" => "Jun"),
array("total" => 1.00, "shipping" => 0, "year" => '2011', "month" => "Nov"),
array("total" => 85.00, "shipping" => 12.50, "year" => '2011', "month" => "Nov"),
array("total" => 17.00, "shipping" => 1.00, "year" => '2010', "month" => "Dec"));
$out = array_filter($records, "filter");
$out = array_map('profit', $out); //arguments reversed. So PHP
$total = array_reduce($out, 'add');
var_dump($total);
?>
float(7.51)