HH\Map::mapWithKey

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

Description

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

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

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.

Parameters

  • callable $callback - The callback containing the operation to apply to the current Map keys and values.

Return Values

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

Examples

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

<?hh

namespace Hack\UserDocumentation\API\Examples\Map\MapWithKey;

$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";
Output
color: #ff0000; /* red */
color: #00ff00; /* green */
color: #0000ff; /* blue */
color: #ffff00; /* yellow */