Returns a Map after an operation has been applied to each key and value in the current Map

public function mapWithKey<Tu>(
  (function(Tk, Tv): Tu) $callback,
): Map<Tk, Tu>;

Every key and value in the current Map is affected by a call to mapWithKey(), unlike filterWithKey() where only values that meet a certain criteria are affected.

The keys will remain unchanged from the current Map to the returned Map. The keys are only used to help in the mapping operation.


  • (function(Tk, Tv): Tu) $callback


  • Map<Tk,Tu> - a Map containing the values after a user-specified operation on the current Map's keys and values is applied.


This example shows how mapWithKey can be used to create a new Map based on $m's keys and values:

$m = Map {
  'red' => '#ff0000',
  'green' => '#00ff00',
  'blue' => '#0000ff',
  'yellow' => '#ffff00',

$css_colors = $m->mapWithKey(
  ($color, $hex_code) ==> "color: {$hex_code}; /* {$color} */",

echo \implode("\n", $css_colors)."\n";