Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/05/2014, 19:42
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 3 meses
Puntos: 397
Respuesta: Forma de asignacion en array

Cita:
Iniciado por Italico76 Ver Mensaje
Ese while extrae registros y los mete dentro del array $categorias

array_push() haria lo mismo:

Código PHP:
Ver original
  1. while ($fila = $result->fetch_array()) {
  2.     array_push($categorias,$fila['categoria']);
  3. }
Según he leído en el manual no es nada óptimo usar una función para hacer algo que la misma sintaxis de php lo permite. Cito la nota (negrita mías):

Cita:
Nota: Si se utiliza array_push() para añadir un solo elemento en el array, es mejor utilizar $array[] = ya que de esta forma no existe la sobrecarga de llamar a una función.
Fuente.

@Maverick2786 el ejemplo que pusiste (complementandolo un poco) está bien. El valor no se sobre escribe. Pongamos un ejemplo.

Tienes tres categorías y las recorres en un while para guadarlas en un array

Código PHP:
Ver original
  1. $categorias = array();
  2.  
  3. while ($fila = $result->fetch_array()) {
  4.     $categorias[] = $fila['categoria'];
  5. }

Cada vez que invocas $categorias[] automáticamente PHP le asigna un indice. Si no hay ningún indice creado en el array empieza por el 0 hasta que termine.

Su haces un var_export a $categorias te darías cuenta de que tiene una estructura similar a

Código:
array(
   0 => "categoría 1",
   1 => "categoría 2",
   2 => "categoría 3",
);
Esta manera es óptima si no importa el indice del array y necesitas usar los datos para presentación. (como usar un select)

El código que muestras al principio es igual a este:

Código PHP:
Ver original
  1. $categorias = array();
  2. $i = 0;
  3. while ($fila = $result->fetch_array()) {
  4.     $categorias[$i] = $fila['categoria'];
  5.     $i++;
  6. }

Pero no tendría sentido al ser un proceso automático de PHP

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.