Arr::mapWithKeys() Method in Laravel 11.x & Laravel 12.x

In Laravel 11.x & Laravel 12.x, the `Arr::mapWithKeys()` method is a helper function provided by Laravel `Arr` facade. It is used to transform an array by applying a callback that returns key-value pairs, creating a new associative array.

Syntax

<?php
use Illuminate\Support\Arr;
$newArray = Arr::mapWithKeys($array, function ($value, $key) {
return [$newKey => $newValue];
});
?>

Example 1: Transforming an Array

<?php
use Illuminate\Support\Arr;
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
];
$result = Arr::mapWithKeys($data, function ($item) {
return [$item['id'] => $item['name']];
});
print_r($result);
?>

Output:-

<?php
[
1 => "Alice",
2 => "Bob"
]
?>

Explanation: The function transforms each item into a key-value pair where the `id` is the key, and `name` is the value.

Example 2: Modify and Remap Keys

<?php
use Illuminate\Support\Arr;
$data = [
'first' => 'John',
'last' => 'Doe'
];
$result = Arr::mapWithKeys($data, function ($value, $key) {
return ["user_{$key}" => strtoupper($value)];
});
print_r($result);
?>

Output:

<?php
[
"user_first" => "JOHN",
"user_last" => "DOE"
]
?>

Explanation: The keys are prefixed with `user_`, and values are converted to uppercase.

Example 3: Filtering & Restructuring an Array

<?php
use Illuminate\Support\Arr;
$data = [
'apple' => 50,
'banana' => 20,
'grape' => 30,
];

$result = Arr::mapWithKeys($data, function ($price, $fruit) {
return [$fruit => $price * 2]; // Double the price
});

print_r($result);
?>

Output:-

<?php
[
"apple" => 100,
"banana" => 40,
"grape" => 60
]
?>

Explanation: Each price is doubled while keeping the same keys.

Conclusion:

1. `Arr::mapWithKeys()` is a powerful helper for transforming associative arrays.
2. The callback must return an array with one key-value pair.
3. Useful for restructuring data, renaming keys, and mapping API responses.