<?php
class Less
{
private $val = 0;
public function __construct ($value)
{
$this->val = $value;
}
public function __invoke ($value)
{
return $this->val < $value;
}
}
function random_array($size, $min, $max)
{
$array = [];
for ($i = 0; $i < $size; $i++)
$array[] = rand($min, $max); return $array;
}
function sum_if
(array $array, Callable
$predicate) {
$sum = 0;
for ($i = 0; $i < count($array); $i++) if ($predicate($array[$i]))
$sum += $array[$i];
return $sum;
}
$array = random_array($n, 0, 20);
$sum = sum_if($array, new Less($a));
echo "Array: " . implode(", ", $array) . "\n" . "Sum: " . $sum; ?>
PD9waHAKCgljbGFzcyBMZXNzCgl7CgkJcHJpdmF0ZSAkdmFsID0gMDsKCQkKCQlwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QgKCR2YWx1ZSkKCQl7CgkJCSR0aGlzLT52YWwgPSAkdmFsdWU7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBfX2ludm9rZSAoJHZhbHVlKQoJCXsKCQkJcmV0dXJuICR0aGlzLT52YWwgPCAkdmFsdWU7CgkJfQoJfQoKCWZ1bmN0aW9uIHJhbmRvbV9hcnJheSgkc2l6ZSwgJG1pbiwgJG1heCkgCgl7CgkJJGFycmF5ID0gW107CgkJZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICRpKyspCgkJCSRhcnJheVtdID0gcmFuZCgkbWluLCAkbWF4KTsKCQlyZXR1cm4gJGFycmF5OwoJfQoKCWZ1bmN0aW9uIHN1bV9pZihhcnJheSAkYXJyYXksIENhbGxhYmxlICRwcmVkaWNhdGUpCgl7CgkJJHN1bSA9IDA7CgkJZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGFycmF5KTsgJGkrKykKCQkJaWYgKCRwcmVkaWNhdGUoJGFycmF5WyRpXSkpCgkJCQkkc3VtICs9ICRhcnJheVskaV07CgkJcmV0dXJuICRzdW07Cgl9CgkKCSRuID0gKGludCl0cmltKGZnZXRzKFNURElOKSk7CgkkYSA9IChpbnQpdHJpbShmZ2V0cyhTVERJTikpOwoJCgkkYXJyYXkgPSByYW5kb21fYXJyYXkoJG4sIDAsIDIwKTsKCSRzdW0gPSBzdW1faWYoJGFycmF5LCBuZXcgTGVzcygkYSkpOwoJCgllY2hvICJBcnJheTogIiAuIGltcGxvZGUoIiwgIiwgJGFycmF5KSAuICJcbiIgLiAiU3VtOiAiIC4gJHN1bTsKPz4=
Array: 17, 4, 4, 14, 0, 11, 20, 12, 20, 4
Sum: 94