function max_subarray_sum($arr) {
$max_sum = 0;
$max_till_i = 0;
for ($i = 0; $i < sizeof($arr); $i++) {
$max_till_i = $max_till_i + $arr[$i];
$max_till_i = ($max_till_i > 0) ? $max_till_i : 0;
$max_sum = ($max_sum > $max_till_i) ? $max_sum : $max_till_i;
}
return $max_sum;
}
$arr = array(1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4); // 4 - 1 - 1 + 2 + 3 = 7
echo max_subarray_sum($arr);
/*
run:
7
*/