Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Arrays/Conceptos»
De WikiEducator
Línea 18: | Línea 18: | ||
<div class="slide"> | <div class="slide"> | ||
{{MRM_Definicion|Un array es un tipo de datos compuesto que nos permite almacenar varios valores en una única variable. }} | {{MRM_Definicion|Un array es un tipo de datos compuesto que nos permite almacenar varios valores en una única variable. }} | ||
− | *Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un '''valor clave o índice''' | + | *Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un '''valor clave o índice''', en la imagen representado por '''POSICIÓN''' |
[[Archivo:arrayPHP.png]] | [[Archivo:arrayPHP.png]] | ||
Línea 74: | Línea 74: | ||
$modulos[] = "otro módulo"; | $modulos[] = "otro módulo"; | ||
− | //Ahora añado un módulo en el índice con valor 10 que NO ES LA POSICIÓN 10 | + | //Ahora añado un módulo en el índice con valor 10 |
+ | // que NO ES LA POSICIÓN 10 | ||
$modulos[10] = "Módulo indexado con el índice 10"; | $modulos[10] = "Módulo indexado con el índice 10"; | ||
− | //incorporamos un nuevo elmento en el array sin especificar el valor del índice | + | //incorporamos un nuevo elmento en el array |
− | //PHP asignará un valor siguiente el último valor numérico que fue el 10 (indice último numérico agragado) | + | //sin especificar el valor del índice |
+ | |||
+ | // PHP asignará un valor siguiente el último valor numérico | ||
+ | // que fue el 10 (indice último numérico agragado) | ||
$modulos[] = "Último módulo añadido"; | $modulos[] = "Último módulo añadido"; | ||
− | // | + | //Visualizo con var_dump el contenido |
+ | // y estructura de la variable $modulo | ||
var_dump($modulos); | var_dump($modulos); | ||
</source> | </source> | ||
− | *La salida que genera ver el contenido de la variable $modulos es un array de 6 elementos | + | *La salida que genera ver el contenido de la variable '''''$modulos''''' es un array de 6 elementos. |
− | * | + | *Vemos el valor de los índices y los contenidos de cada elemento: |
<source lang=php> | <source lang=php> | ||
Línea 106: | Línea 111: | ||
===Array numéricos o indexados=== | ===Array numéricos o indexados=== | ||
*Como ya hemos visto. los arrays en php se clasifican en función de la clave que llevan: | *Como ya hemos visto. los arrays en php se clasifican en función de la clave que llevan: | ||
− | #Clave numérica posicional : La clave especifica la posición de cada elemento. '''''Array Indexado''''' | + | #'''Clave numérica posicional''' : La clave especifica la posición de cada elemento. '''''Array Indexado''''' |
− | #Clave con valor: La clave tiene un significado por sí mismo y tiene '''asociado''' un valor. '''''Array Asociativo''''' | + | #'''Clave con valor''': La clave tiene un significado por sí mismo y tiene '''asociado''' un valor. '''''Array Asociativo''''' |
En los Arrays indexados, el índice empieza por 0. | En los Arrays indexados, el índice empieza por 0. | ||
*El contenido de un elemento de un array puede ser cualquier valor, incluido otro array, puediendo fácilmente construir estructuras mas complejas o arrays N-dimensionales, como veremos en ejemplos posteriores | *El contenido de un elemento de un array puede ser cualquier valor, incluido otro array, puediendo fácilmente construir estructuras mas complejas o arrays N-dimensionales, como veremos en ejemplos posteriores | ||
Línea 129: | Línea 134: | ||
====Crear un array==== | ====Crear un array==== | ||
*Podemos usar el operador '''''array();''''' | *Podemos usar el operador '''''array();''''' | ||
− | *A partir de la versión 5.3 se puede | + | *A partir de la versión 5.3 se puede (y recomienda) usar directamente el operador '''''[]''''' |
*En php no hay que especificar tamaño , ni cómo va a ser el índice ni lógicamente tipo (ni de índice ni de contenido). | *En php no hay que especificar tamaño , ni cómo va a ser el índice ni lógicamente tipo (ni de índice ni de contenido). | ||
El '''''array''''', como hemos comentado, va a ser un conjunto de elementos, cada tipo de cada elemento dependerá del valor que contenga en cada momento , y por supuesto puede ser modificado (tanto el valor como el tipo). | El '''''array''''', como hemos comentado, va a ser un conjunto de elementos, cada tipo de cada elemento dependerá del valor que contenga en cada momento , y por supuesto puede ser modificado (tanto el valor como el tipo). | ||
Línea 157: | Línea 162: | ||
====Escribir en un array==== | ====Escribir en un array==== | ||
*Simplemente hay que asignar un valor a una posición del '''''array''''' | *Simplemente hay que asignar un valor a una posición del '''''array''''' | ||
− | *Si no especificamos valor al índice, PHP asignará un valor numérico superior al valor numérico más alto asignado | + | *Si no especificamos valor al índice, PHP asignará un valor numérico superior al valor numérico más alto asignado. |
− | *Si pongo un valor superior al número de índices, el siguiente elemento estará en una posición | + | *Si pongo un valor superior al número de índices, el siguiente elemento estará en una posición más: |
<source lang=php> | <source lang=php> | ||
$notas =[]; | $notas =[]; | ||
Línea 174: | Línea 179: | ||
*Podemos ver gráficamente como queda el '''array'''. | *Podemos ver gráficamente como queda el '''array'''. | ||
[[Archivo:arrayNotas.png]] | [[Archivo:arrayNotas.png]] | ||
− | *Las posiciones no especificadas no existen. | + | *Las posiciones no especificadas '''no existen'''. |
<!--2--> | <!--2--> | ||
Línea 183: | Línea 188: | ||
<source lang=php> | <source lang=php> | ||
$notas[2]= 8; | $notas[2]= 8; | ||
− | + | </source> | |
</div> | </div> | ||
;Escribir en un array | ;Escribir en un array | ||
Línea 266: | Línea 271: | ||
//Inicializo un array de tamaño entre 20 y 30 elementos | //Inicializo un array de tamaño entre 20 y 30 elementos | ||
− | $ | + | $size = rand(10,15); |
− | for ($n = 0; $n<$ | + | for ($n = 0; $n<$size ; $n++){ |
$notas[]=rand(0,10); | $notas[]=rand(0,10); | ||
} | } | ||
Línea 338: | Línea 343: | ||
<div class="slide"> | <div class="slide"> | ||
;Recorrer un array | ;Recorrer un array | ||
− | {{MRM_Pregunta|¿Por qué no conviene usar la función '''''count'''''}} | + | {{MRM_Pregunta|¿Por qué no conviene usar la función un for obteniendo el tamaño del array con '''''count''''' o bien con '''''sizeof'''''}} |
− | *Esta no es una forma conveniente de recorrer un array en php, pues no tiene | + | <br /> |
+ | *Esta no es una forma conveniente de recorrer un array en php, pues no tiene por qué coincidir en el índice de cada elemento con su posición numérica. | ||
*Supongamos el siguiente caso | *Supongamos el siguiente caso | ||
<source lang=php> | <source lang=php> | ||
Línea 358: | Línea 364: | ||
</source> | </source> | ||
*La forma de leerla sería | *La forma de leerla sería | ||
− | + | Para cada elemento de $array, cuyo valor guardo en $valor | |
− | + | Esto lo hago hasta que llegue al último elemento | |
*O bien: | *O bien: | ||
<source lang=php> | <source lang=php> | ||
Línea 367: | Línea 373: | ||
</source> | </source> | ||
*Cuya lectura sería | *Cuya lectura sería | ||
− | + | Para cada elemento de $array, | |
− | + | toma el valor del índice y lo guardas en la variable $indice | |
+ | y el valor del contenido lo guardas en la variable $valor | ||
+ | Esto se repite hasta que llegue al último elemento | ||
+ | *''''Es decir para cada elemento del array'''' (cada uno de ellos. por lo tanto es una iteración). | ||
<!--2--> | <!--2--> | ||
Línea 457: | Línea 466: | ||
} | } | ||
</source> | </source> | ||
− | *Esto es | + | *Esto es porque en realidad en cada interación se está cogiendo el valor del elemento del array '''''$productos''''' y se copia en la variable '''''$producto''''' el índice y '''''$datos''''' el valor, pero '''''$datos''''' es otra posición de memoria diferente que el contenido correspondiente del array, por lo que al modificarlo, el array se queda inalterado. |
Si queremos modificarlo, tendríamos que hacer que el valor de '''''$datos''''' estuviera en la misma posoción de memoria que la posición correspondiente del array, y esto se consigue con el operador '''''&''''', por lo que el bucle sería | Si queremos modificarlo, tendríamos que hacer que el valor de '''''$datos''''' estuviera en la misma posoción de memoria que la posición correspondiente del array, y esto se consigue con el operador '''''&''''', por lo que el bucle sería | ||
<source lang=php> | <source lang=php> | ||
Línea 573: | Línea 582: | ||
===Recorrer un string como un array de caracteres=== | ===Recorrer un string como un array de caracteres=== | ||
*Podemos recorrer un array como un vector de caracteres | *Podemos recorrer un array como un vector de caracteres | ||
− | *Esto nos puede permitir controlar y gestionar los string analizando cada carácter | + | *Esto nos puede permitir controlar y gestionar los string analizando cada carácter. |
+ | |||
{{MRM_Actividad| | {{MRM_Actividad| | ||
;Muestra los caracteres de un string carácter a carácter | ;Muestra los caracteres de un string carácter a carácter |
Revisión de 07:11 30 nov 2023
|}