DOP: agrupar matrices asociativas por valores de columna
Agrupar datos por valores de columna específicos puede ser útil para organizar y manipular conjuntos de datos. Esta pregunta explora una manera de lograr esto utilizando el método fetchAll de PDO.
El ejemplo proporcionado muestra un conjunto de datos de empleados con columnas como nombre, edad, sexo y puesto. El objetivo es obtener una matriz asociativa agrupada por la columna de nombre, lo que da como resultado una estructura de matriz como:
[ 'Antony' => ['age' => 34, 'sex' => 'M', 'position' => 'programmer'], 'Sally' => ['age' => 30, 'sex' => 'F', 'position' => 'manager'], 'Matthew' => ['age' => 28, 'sex' => 'M', 'position' => 'designer'], ]
El enfoque inicial que utiliza PDO::FETCH_GROUP|PDO::FETCH_ASSOC introduce niveles no deseados de anidamiento. Para resolver esto, la pregunta sugiere usar una función de devolución de llamada con PDO::FETCH_GROUP|PDO::FETCH_ASSOC|PDO::FETCH_FUNC. Sin embargo, encuentra problemas con la función de devolución de llamada que recibe elementos individuales en lugar de matrices.
La solución a este problema es usar PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE. Este enfoque designa la primera columna como clave de la matriz y establece las columnas restantes como valores, lo que produce la matriz asociativa agrupada deseada sin anidamiento ni manipulación innecesaria de la matriz.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3