Tener problemas para encontrar la combinación correcta de conteo y foreach para una matriz multidimensional.PHP - Crear una matriz multidimensional a través de un bucle basado en un recuento
que estoy haciendo actualmente lo siguiente para crear una matriz asociativa de resultados devuelto de mi db:
$sql = "SELECT g.id, g.shortname FROM games g ORDER BY g.id ASC";
$query = $this->db->query($sql);
if($query->num_rows() > 0):
foreach($query->result() as $row):
$data[$row->id] = $row->shortname;
endforeach;
return $data;
else:
return false;
endif;
Por supuesto, esto produce la siguiente matriz (que funciona bien; código de semi-falso):
array ([1] => CoolGame, [2] => AnotherGame, [3] => BetterGame, [4] => UglyGame)
.... y así sucesivamente
Pero lo que yo quiero hacer es romper automáticamente resultados (en base a un recuento var/limitador) en grupos a través de una matriz multidimensional de este modo:
array (Group 1 =>
array([1] => CoolGame [2] => AnotherGame),
Group 2 =>
array([3] => BetterGame [4] => UglyGame)
)
Así que en ese ejemplo, mi $depth_count = 2;
En caso de que a alguien le interesa, yo estoy haciendo esto para trabajar con <optgroup>
etiquetas generadas automáticamente para un multi seleccionar a través de la función de CI forma de ayudante form_multiselect(). Necesito ayuda para ajustar mi PHP para permitir esto. ¡Gracias!
+1, Touche. Me olvidé de esa función. De hecho, me gusta eso, si se trata de una agrupación arbitraria. –
+1 array_chunk (función muy útil mientras se juega con arrays :)) –
Cosas geniales. Funciona perfectamente y sería la solución completa, excepto por el hecho de que crea claves de matriz indexadas numéricamente. Probablemente pueda iterar sobre la matriz después del hecho y anteponer "Grupo" a cada nombre de clave. – k00k