Foros del Web » Programando para Internet » PHP »

Arreglos Asociativos

Estas en el tema de Arreglos Asociativos en el foro de PHP en Foros del Web. Hola comunidad como estan, mi duda es la siguiente estoy usando un tutorial para armar webs modulares de zonaphp y el primer archivo que es ...
  #1 (permalink)  
Antiguo 26/02/2007, 20:06
Avatar de SkyLike  
Fecha de Ingreso: junio-2004
Ubicación: Ushuaia - Tierra del Fuego
Mensajes: 35
Antigüedad: 19 años, 10 meses
Puntos: 0
Arreglos Asociativos

Hola comunidad como estan, mi duda es la siguiente estoy usando un tutorial para armar webs modulares de zonaphp y el primer archivo que es muy importante lleva arreglos asociativos, no me a dado problemas usar los ejemplos ahi expuestos lo que me lleva a escribie aca es que me gustaria saber detalladamente que estoy haciendo y porque, para aplicarlo si veo que es util en otras cosas mas.

No se que son los arreglos asociativos, ni el porque de su sintaxis ni de donde sacar una explicacion base para entender y seguir investigando, por ende no se las posibilidades de uso que tiene.

Queria si son tan amables que alguien me explicase que son, porque y como y de donde aprenderlo mas profundamente.

Desde ya les agradesco la atencion, acudo a este foro porque la comunidad a sabido explicarme las cosas y me ha echo entender otras miles en este foro, hace mucho que no escribo pero se que siempre hay una mano dispuesta, un abrazo!
  #2 (permalink)  
Antiguo 26/02/2007, 22:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Arreglos Asociativos

Un arreglo (matriz, o vector) es una especie de "contenedor", contiene datos a los que se accede a través de índices.
¿estamos de acuerdo?

Los vectores pueden tener índices numéricos o asociativos (de hecho, puede tener ambos).

Un vector con índices numéricos es algo como:

$vector[0] = 'valor0';
$vector[1] = 'valor1';
·
·

Mientras que los índices asociativos son cadenas, y por lo tanto un vector asociativo se vería como:

$vector['indice1'] = 'valor1';
$vector['otroindice'] = 'valor2';


La diferencia entre ambos es básicamente la comodidad (aunque creo que también podría ser el rendimiento, no estoy seguro):

Supongamos que estás creando un arreglo que guarda las características de un monitor, por ejemplo color, resolución, pulgadas, marca. Supongamos que el arreglo se llama $monitor

claramente es mucho más fácil e intuitivo acceder a los valores en $monitor así:

$monitor['marca']
$monitor['pulgadas']
$monitor['resolucion']
$monitor['color']

que hacerlo así:

$monitor[0]
$monitor[1]
$monitor[2]


Espero que te sirva la mini explicación.

saludos.
  #3 (permalink)  
Antiguo 26/02/2007, 23:51
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Arreglos Asociativos

Hola

Bueno, pues alvin ya ha explicado bien el concepto, solo agregaria que los arrays asociativos fue pensado por 2 razones

1. como su nombre lo indica, asocia elementos que para nosotros son comunes a un listado o array en jerga de programadores

2. al ver que algunas personas tenian problemas con el manejo de array clasicos (arrays que se asignan por numeros), se penso en una mejor alternativa, y surgieron los arrays asociativos, asi pues

$colores = array("Negro","Blanco");
se tendria que imprimir $colores[0] para Negro por ej

en cambio que asi

$colores = array("Color1"=>"Negro","Color2"=>"Blanco");
se imprimiria $colores['Color1'] para negro

y asociando colores por rango alfanumerico y no solo numerico

bueno, espero que haya sido de ayuda

suerte
  #4 (permalink)  
Antiguo 27/02/2007, 06:46
Avatar de SkyLike  
Fecha de Ingreso: junio-2004
Ubicación: Ushuaia - Tierra del Fuego
Mensajes: 35
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Arreglos Asociativos

Ok entendi la explicacion de ambos les agradesco ahora les dejo el codigo por el cual surgio mi duda, me podrian explicar el funcionamiento porque el concepto esta barbaro y yo lo hubiese usado para mil cosas , simples, pero el programador lo uso para armar este config que me parece que esta fabuloso y es sumamente util a mi no se me hubiese ocurrido jamas (escribo en php de leer en internet y comprarme guias y demas lo he estudiado lo mas profundamente que he podido pero aca en ushuaia no hay cursos avanzados por ahi debe ser la falta de vision en algunas cosas).

se los dejo:
  1. <?php
  2. /*
  3. * Archivo de configuración para nuestra aplicación modularizada.
  4. * Definimos valores por defecto y datos para cada uno de nuestros módulos.
  5. */
  6. define('MODULO_DEFECTO', 'home');
  7. define('LAYOUT_DEFECTO', 'layout_simple.php');
  8. define('MODULO_PATH', realpath('./modulos/'));
  9. define('LAYOUT_PATH', realpath('./layouts/'));

  10. $conf['home'] = array(
  11. 'archivo' => 'home.php',
  12. 'layout' => LAYOUT_DEFECTO );
  13. $conf['articulo'] = array(
  14. 'archivo' => 'art.php' );
  15. ?>
este es el codigo que escribio y sirve para modulizar una web (no es poca cosa) espero que se entienda lo que necesito entender disculpen si soy muy cuadrado y es demasiado obvio pero me gustaria saber el razonamiento y como php hace de una funcion tan simple (nunca pense para que sirve un array) algo tan importante.
  #5 (permalink)  
Antiguo 27/02/2007, 08:18
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
De acuerdo Re: Arreglos Asociativos

Hola

Bueno, pues mira

Aqui vemos, como en la primera parte de nuestro archivo, definimos algunas constantes que nos van a servir: MODULO_DEFECTO, indicando cuál de los módulos cargar si no se indicó ninguno, LAYOUT_DEFECTO que indica que "diseño" se utilizará por defecto en los módulos, MODULO_PATH y LAYOUT_PATH, indicando directorios en los cuales vamos a almacenar nuestros módulos y layouts. En el ejemplo, quedarán en dos directorios separados, pero podrían ser el mismo sin problema.
Aqui vemos, que tenemos dos "módulos" en nuestra aplicación; "home" y "articulo". Estos nombres de índices, son los que le vamos a pasar a nuestra variable modulo, indicando a que sección de nuestro sitio queremos acceder.
Como vemos, cada "sección" contiene ( o deberia indicar ) dos directivas: "archivo" y "layout". El primer valor es el nombre del archivo que efectivamente vamos a incluir, asociado con el nombre del indice del arreglo. Esto soluciona en gran parte el problema de seguridad que nombramos anteriormente, ya que no se indica directamente el nombre del archivo a incluir, sino que se indica a través de un nombre ficticio, un alias.
El segundo valor, layout, es el nombre del archivo que contiene el diseño "base" de la aplicación. Aqui tenemos dos opciones, indicar en el archivo de configuración el nombre del archivo de layout, o expresar, mediante la constante definida antes, que cierto módulo utiliza el layout por defecto ( esto ayuda a la claridad luego cuando se quiera revisar el archivo de configuración y se aconseja ). Como podemos ver en el módulo "articulo", en este caso no se indica ningun archivo de layout. Esto nosotros lo tomaremos como que al no indicarse, se desea utilizar el layout por defecto (Esta es una opción realmente buena para los programadores holgazanes como yo, que no quieren escribir grandes archivos de configuración).



Si quieres saber mas, ingresa a este link que es de donde se extracto ese codigo:



http://www.zonaphp.com/creando-webs-modulares/3/



Suerte
  #6 (permalink)  
Antiguo 27/02/2007, 08:48
Avatar de SkyLike  
Fecha de Ingreso: junio-2004
Ubicación: Ushuaia - Tierra del Fuego
Mensajes: 35
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Arreglos Asociativos

Agradesco a todos las respuestas, han sido de gran ayuda!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:46.