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.