method rmap documentation in bbn\X
Applies the given function at all levels of a multidimensional array after picking the items (if defined param $item).
Example
$ar = [
['age' => 45,
'name' => 'John',
'children' => [
['age' => 8, 'name' => 'Carol'],
['age' => 24, 'name' => 'Jack'],
]
],
['age' => 44, 'name' => 'Benjamin'],
['age' => 60, 'name' => 'Paul', 'children' =>
[
['age' => 36, 'name' => 'Mike'],
['age' => 46, 'name' => 'Alan', 'children' =>
['age' => 8, 'name' => 'Allison'],
]
]
]
];
X::hdump(X::map(function($a) {
if ($a['age']>20) {
$a['name'] = 'Mr. '.$a['name'];
}
return $a;
}, $ar,'children'));
/* array [
[
"age" => 45,
"name" => "Mr. John",
"children" => [
[
"age" => 8,
"name" => "Carol",
],
[
"age" => 24,
"name" => "Mr. Jack",
],
],
],
[
"age" => 44,
"name" => "Mr. Benjamin",
],
[
"age" => 60,
"name" => "Mr. Paul",
"children" => [
[
"age" => 36,
"name" => "Mr. Mike",
],
[
"age" => 46,
"name" => "Mr. Alan",
"children" => [
"age" => 8,
"name" => "Allison",
],
],
],
]
function(callable $fn, array $ar, string $items = NULL)
{
$res = [];
foreach ($ar as $key => $a) {
if (\is_array($a) && $items && isset($a[$items]) && \is_array($a[$items])) {
$a[$items] = self::map($fn, $a[$items], $items);
}
$is_false = $a === false;
$r = $fn($a, $key);
if ($is_false) {
$res[] = $r;
}
elseif ($r !== false) {
$res[] = $r;
}
}
return $res;
}
Applies the given function at all levels of a multidimensional array after picking the items (if defined param $item). BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way
This website uses cookies to ensure you get the best experience on our website.
© 2011-2025
BBN Solutions