Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

553
Vistas
Únete a 2 colecciones de laravel

Tengo 2 colecciones:

 $collection1 = [ { name : "aaa" , score : 10 }, { name : "bbb" , score : 20 } ]; $collection2 = [ { name : "aaa" , score : 30 }, { name : "bbb" , score : 10 } ];

y quiero unirme a ellos para obtener el siguiente resultado:

 $collection3 = [ { name : "aaa" , score : 40 }, { name : "bbb" , score : 30 } ]

merge() y union() no hicieron el trabajo por mí.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Combine las colecciones, agrupe por el nombre y sume la puntuación. Esto se puede hacer así con colecciones en Laravel . Tenga en cuenta que group by devuelve una colección de datos agrupados.

 $collection1->concat($collection2); $collection1->groupBy('name')->map(function ($scores) { $score = $scores->first(); $score['score'] = $scores->sum('score'); return $score; });
over 4 years ago · Santiago Trujillo Denunciar

0

se puede lograr mediante la función laravel collection map() y where()

 $collection1 = collect([ [ "name" => "aaa", "score" => 10 ], [ "name" => "bbb", "score" => 20 ] ]); $collection2 = collect([ [ "name" => "aaa", "score" => 30 ], [ "name" => "bbb", "score" => 10 ] ]); $collection3 = $collection1->map(function ($item) use ($collection2) { $found = $collection2->where('name', $item['name']); if ($found) { $item['score'] = $item['score'] + $found->first()['score']; } return $item; }); dd($collection3);

Este es el resultado https://phpsandbox.io/n/soft-flower-ap1e-vo2xy

over 4 years ago · Santiago Trujillo Denunciar

0

$colección = recolectar();$colección->merge(['col1' => $col1, 'col2' => $col2 ]); O $estados = [ 'Delhi', 'Tamil Nadu', 'Uttar Pradesh']; foreach ($estados como $estado) { $datos = DB::table('usuario')->select('usuario.*') ->where("usuario.ciudad", $estado)->where('usuario .estado', 1)->get(); if (!vacío($datos[0])) $estadoUsuario = $estadoUsuario->merge([$estado => $datos]);}

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda