This is the P2PU Archive. If you want the current site, go to www.p2pu.org!

Programando web con PHP

My recent threads

You haven't posted any discussions yet.

Recently updated threads

Semana 4.5: ARRAYS

Go back to: General discussion

Compañeros,

en primer lugar me disculpo por la demora, tuve unas semanas muy atareadas, asi que no pude ni preparar ejemplos ni nada, vamos a ver si con el apoyo colaborativo de todos aqui, seguimos adelante con el curso

La idea de esta semana es aprender y fortalecer los conceptos de una de las formaciones mas interesantes de PHP (y de otros lenguajes con tipado dinamico como Python) que son los array

Un array es un tipo de variable "multiple", es decir que puede guardar varios valores simultaneamente (traducido en español a veces como arreglo, vector, matriz y otros nombres mas o menos inexactos, prefiero usar el término en inglés array que no da lugar a dudas)

Un array tiene multiples valores y para poder identificarlos cada valor dentro del array tiene un índice que lo identifica

Les propongo que hagamos el aprendizaje sobre arrays colaborativo, ya que vi varios de los resultados de las tareas que enviaron donde los usan, es decir que mas de uno conoce a los arrays, asi que ayudemonos entre todos a enseñarnos arrays

Para empezar, muestro tres formas alternativas de crear arrays con indice numerico

Forma 1:

//crear el array, indice numerico, automatico, arrancando en 1
$dias = array("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
//para ver el resultado
print_r($dias);

Forma 2:

//crear el array, indice numerico, automatico iniciando en 1 y agregando siempre +1
$dias[] = "Lunes";
$dias[] = "Martes";
$dias[] = "Miercoles";
$dias[] = "Jueves";
$dias[] = "Viernes";
$dias[] = "Sabado";
$dias[] = "Domingo";

//para ver el resultado
print_r($dias);

Forma 3:

//crear el array, indices puestos a mano
$dias[1] = "Lunes";
$dias[2] = "Martes";
$dias[3] = "Miercoles";
$dias[4] = "Jueves";
$dias[5] = "Viernes";
$dias[6] = "Sabado";
$dias[7] = "Domingo";

//para ver el resultado
print_r($dias);

La funcion print_r() es una funcion especial para ver el contenido de un array
prueben este codigo y pongan aqui la salida que da cualquiera de estas piezas de codigo

Les pido si encuentran textos que expliquen el uso de arrays en PHP los pongan aqui, tambiei si quieren escribir algo acerca de los indicies no numericos, o de funciones que trabajen con arrays

Matías Merino's picture
Matías Merino
Sat, 2011-02-19 18:47

Hola Martín,
Creo que te haz equivocado en las dos primeras formas, ya que parte desde 0 y no desde 1 como es indicado, salvo la ultima forma que si parte desde 1, por que se le es asignado.

y el print_r($dias); no sabia que servia para ver los ARRAY en PHP, excelente :D

Victor Fernandez's picture
Victor Fernandez
Mon, 2011-02-21 02:22

Hoy he estado trabajando con una plantilla del template de un tema para SMF y por lo que explicas, me da que lo usan (lógica) pero aun esta un poco lejos de parecerse a eso, cuando practique comento.

Lidia Cortés Pérez's picture
Lidia Cortés Pérez
Mon, 2011-02-21 07:58

Les dejo un link q anduve leyendo http://www.ignside.net/man/php/arrays.php

Cesar Esteban's picture
Cesar Esteban
Mon, 2011-02-21 21:22

Muy bueno el apunte Linda. los array cuando se comienza aprender son enredados pero a medida pasa el tiempo se conoce bien la logica, suerte compañeros.

Frank Leon's picture
Frank Leon
Tue, 2011-02-22 22:50

Muy bueno aunque en realidad no tengo la logica aun en mi cabeza para entender los arrays esta muy bien.

Gracias

Lidia Cortés Pérez's picture
Lidia Cortés Pérez
Wed, 2011-02-23 13:33

Hola chic@s les dejo este video en donde explican el uso de arrays http://www.youtube.com/watch?v=QE8bhpX2LEw
Saludos

Núria's picture
Núria
Wed, 2011-02-23 18:39

Gracias por los dos recursos.

Saludos

Franco  Giovanolli's picture
Franco Giovanolli
Mon, 2011-03-14 14:27

Como para reactivar un poco el tema, los array comienzan con indice 0 si son automaticos, si no me equivoco feo.

[cita]
////crear el array, indice numerico, automatico iniciando en 1 y agregando siempre +1

$dias[] = "Lunes";
$dias[] = "Martes";
$dias[] = "Miercoles";
$dias[] = "Jueves";
$dias[] = "Viernes";
$dias[] = "Sabado";
$dias[] = "Domingo";
[/cita]

Probando el anterior con:
foreach ($dias as $key => $value) {
echo "key->> $key";
echo "key->> $value";
}

Salida:

key->> 0
value->> Lunes

key->> 1
value->> Martes

key->> 2
value->> Miercoles

key->> 3
value->> Jueves

key->> 4
value->> Viernes

key->> 5
value->> Sabado

key->> 6
value->> Domingo

###############################
Nota: como esto es p2p y hoy me desperte con delirios de Sarmiento, dejo una par de funciones basicas, utiles a la hora de trabajar con arrays.

#Para saber la cantidad de elementos de un array, los contamos con la funcion " count() "
$a = count($dias);
echo "$a";
Devuelve:
7

#Para concatenar arrays, es decir integrarlos en uno solo, existen varias formas, pero la mas fácil es con " array_merge() "
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = array_merge($array1, $array2);
print_r($result);

Devuelve:
Array
(
[0] => zero_a
[1] => two_a
[2] => three_a
[3] => one_b
[4] => three_b
[5] => four_b
)

#Para convertir un array en un string, es decir una lista de elementos en un solo elemento, se usa la funcion " implode() "
$coma = implode(",", $dias); // Retomando el primer array
echo $coma;

Devuelve:
Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo

#Al contrario que la anterior, la funcion "explode()" convierte un string en un array de strings delimitados por lo que querramos, es decir convierte una palabra o frase en un array de letras o palabras, segun necesitemos.
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
print_r($pieces);

Devuelve:
Array
(
[0] => piece1
[1] => piece2
[2] => piece3
[3] => piece4
[4] => piece5
[5] => piece6
)

#Las funciones array_pop y array_shift son muy utiles. "array_pop()" quita el ultimo elemento del array y toma ese valor y "array_shift()" hace justamente lo mismo desde el principio:
//array_pop()
$b = array_pop($dias);
echo "El ultimo elemento es: $b";
echo "
El array queda sin el ultimo elemento
";
print_r($dias);

Devuelve:
El ultimo elemento es: Domingo
El array queda sin el ultimo elemento
Array
(
[0] => Lunes
[1] => Martes
[2] => Miercoles
[3] => Jueves
[4] => Viernes
[5] => Sabado
)

//array_shift()
$c = array_shift($dias);
echo "El primer elemento es: $c";
echo "
El array queda sin el primer elemento
";
print_r($dias);

Devuelve:
El primer elemento es: Lunes
El array queda sin el primer elemento
Array
(
[0] => Martes
[1] => Miercoles
[2] => Jueves
[3] => Viernes
[4] => Sabado
[5] => Domingo
)

#En direccion contraria, "array_unshift()", permite agregar un nuevo elemento al array al principio del mismo.
array_unshift($dias, 'Osvaldo');// Retomando desde el principio el primer array
print_r($dias);

Devuelve:
Array
(
[0] => Osvaldo
[1] => Lunes
[2] => Martes
[3] => Miercoles
[4] => Jueves
[5] => Viernes
[6] => Sabado
[7] => Domingo
)

#Por ultimo, "array_reverse()" cambia el orden de los elementos del array invietiendolos, una forma de cumplir eso de "los ultimos seran los primeros".
$d = array_reverse($dias); // Retomando el array desde la funcion anterior
print_r($d);

Devuelve:
Array
(
[0] => Domingo
[1] => Sabado
[2] => Viernes
[3] => Jueves
[4] => Miercoles
[5] => Martes
[6] => Lunes
[7] => Osvaldo
)

Eso es todo por ahora, QUE NO DECAIGA MUCHACHOS!, no siempre estan las oportunidades de tener un servidor a nuestra disposicion para aprender y gratis.

Matías Merino's picture
Matías Merino
Tue, 2011-03-15 01:00

Excelentes Tips!, se agradece un monton :)

Francisco  Cerdas's picture
Francisco Cerdas
Tue, 2011-03-15 05:35

Gracias, excelente.