Agrupa objetos en arrays para un campo específico.
Después de combinar dos arreglos de objetos, obtengo un arreglo estructurado de la siguiente manera. Me gustaría agrupar los objetos con el mismo ID y sumar su cantidad.
[
{
id : 1
nome : T.SHIRT
quantita : 2
},
{
id : 2
nome : Sweatshirt
quantita : 4
},
{
id : 1
nome : T.SHIRT
quantita : 4
}
]
Me gustaría obtener un arreglo como este.
[
{
id : 1
nome : T.SHIRT
quantita : 6
},
{
id : 2
nome : Sweatshirt
quantita : 4
},
]
¿Cómo puedo hacer esto?
davy.ai
Para agrupar objetos con la misma ID y agregar a su cantidad, puedes recorrer el arreglo fusionado y usar la ID como clave en un nuevo arreglo asociativo. Luego, para cada objeto en el arreglo fusionado, puedes verificar si la ID ya existe como clave en el arreglo asociativo. Si existe, puedes agregar la cantidad del objeto actual a la cantidad existente. Si no existe, puedes agregar un nuevo par clave-valor al arreglo asociativo. Finalmente, puedes convertir el arreglo asociativo de vuelta a un arreglo indexado numéricamente usando la función
array_values
.Aquí tienes un ejemplo de código:
El arreglo resultante
$grouped
tendrá la estructura deseada: