Search code examples
laravellaravel-5laravel-collection

mapWithKeys in laravel ,i dont understand how do it work?


I saw the example of laravel, but i dont understand how do it work.

for this example:

$collection = collect([
    [
        'name' => 'John',
        'department' => 'Sales',
        'email' => 'john@example.com'
    ],
    [
        'name' => 'Jane',
        'department' => 'Marketing',
        'email' => 'jane@example.com'
    ]
]);

$keyed = $collection->mapWithKeys(function ($item) {
    return [$item['email'] => $item['name']];
});

$keyed->all();

someone can explain detail of it?


Solution

  • $collection = collect([
        [
            'name' => 'John',
            'department' => 'Sales',
            'email' => 'john@example.com'
        ],
        [
            'name' => 'Jane',
            'department' => 'Marketing',
            'email' => 'jane@example.com'
        ]
    ]);
    
    $keyed = $collection->mapWithKeys(function ($item) {
       //this line takes one array of collection object in item array and  make a key of its email and store name on that email key  
        return [$item['email'] => $item['name']];
    });
    
    $keyed->all();