Выбрать из массива только положительные значения
<?php
function to_bool($v){
return (bool)$v;
}
$array = array(# Попадут в результирующий массив:
'foo', 1, array(2, 3), (object)'bar', true,
# будут исключены:
'', array(), 0, false, null);
print_r(array_filter($array, 'to_bool'));
Array
(
[0] => foo
[1] => 1
[2] => Array
(
[0] => 2
[1] => 3
)
[3] => stdClass Object
(
[scalar] => bar
)
[4] => 1
)
Заменяем array_map, array_filter более лаконичными функциями
<?php
function map($fn, $array){
return array_map($fn, $array);
}
function kmap($fn, $array){
$return = array();
foreach($array as $k=>$v)
$return[$k] = $fn($k, $v);
return $return;
}
function filter($fn, $array){
return array_filter($array, $fn);
}
function kfilter($fn, $array){
$return = array();
foreach($array as $k=>$v)
if($fn($k, $v))
$return[$k] = $v;
return $return;
}