Unidad 6 Arrays

20
Programación II Unidad 6 Arrays - Página Nº: 145 Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior Arrays. Sabemos que una variable es un contenedor de un valor sencillo. Un array, por otro lado, es un contenedor para valores múltiples. También puede contener elementos múltiples que tienen valores diferentes. Los elementos en un array son referenciados y manipulados basándose en su índice, que normalmente es un número entero. En PHP a los índices también se les llaman claves (keys). Por ejemplo, si quiere crear una lista de comida empleando cadenas, el código podría ser el siguiente: $Item1 = “manzanas”; $Item2 = “bananas”; $Item3 = “naranjas”; Necesitará crear una nueva cadena por cada elemento que añada. Esto es muy engorroso y hace difícil volver a referirse a la lista completa o a cualquier valor específico del código más tarde. Puede simplificar enormemente los problemas colocando la lista en un array que contenga todo lo que necesite incluir en la lista. Para la creación de arrays debe utilizar array(), cuya sintaxis es: $List = array (“manzanas”, “bananas”, “naranjas”); En este ejemplo, el primer artículo ha sido indexado automáticamente como 0, el segundo como 1 y el tercero como 2. Se puede forzar este índice. $List = array (1 => “manzanas”, 2 => “bananas”, 3 => “naranjas”); El valor del índice que especifique no tiene por qué ser un número, también puede ser una cadena. Esta técnica de indexado es muy práctica para la creación de listas con más significados. Ej. 6.1 <?php $Soups = array ("Monday" => "Clam Chowder", "Tuesday" => "White Chicken Chili", "Wednesday" => "Vegetarian"); print (“$Soups<P>\n”); ?> Cuando lo ejecute saldrá Array Adición de elementos a un array.

description

matematica arreglos

Transcript of Unidad 6 Arrays

Page 1: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 145

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Arrays. Sabemos que una variable es un contenedor de un valor sencillo. Un array, por otro lado, es un contenedor para valores múltiples. También puede contener elementos múltiples que tienen valores diferentes. Los elementos en un array son referenciados y manipulados basándose en su índice, que normalmente es un número entero. En PHP a los índices también se les llaman claves (keys). Por ejemplo, si quiere crear una lista de comida empleando cadenas, el código podría ser el siguiente: $Item1 = “manzanas”; $Item2 = “bananas”; $Item3 = “naranjas”; Necesitará crear una nueva cadena por cada elemento que añada. Esto es muy engorroso y hace difícil volver a referirse a la lista completa o a cualquier valor específico del código más tarde. Puede simplificar enormemente los problemas colocando la lista en un array que contenga todo lo que necesite incluir en la lista. Para la creación de arrays debe utilizar array(), cuya sintaxis es: $List = array (“manzanas”, “bananas”, “naranjas”); En este ejemplo, el primer artículo ha sido indexado automáticamente como 0, el segundo como 1 y el tercero como 2. Se puede forzar este índice. $List = array (1 => “manzanas”, 2 => “bananas”, 3 => “naranjas”); El valor del índice que especifique no tiene por qué ser un número, también puede ser una cadena. Esta técnica de indexado es muy práctica para la creación de listas con más significados.

Ej. 6.1

<?php

$Soups = array ("Monday" => "Clam Chowder", "Tuesday" => "White Chicken Chili", "Wednesday" => "Vegetarian");

print (“$Soups<P>\n”); ?> Cuando lo ejecute saldrá Array

Adición de elementos a un array.

Page 2: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 146

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Puede añadir elementos extra asignándolos directamente con el operador de asignación. Como por ejemplo: $List[] = “pears”; $List[] = “tomatoes”; Si no especifica la clave, cada elemento será añadido al array existente, siendo indexado con el siguiente número lógico. Serán añadidos al array existente, con el siguiente índice. (3 y 4 en este caso). Ahora el valor del elemento en la cuarta posición del array es tomatoes, y ningún elemento de $List es igual a naranjas. Al igual que puede saber la longitud de una cadena usando strlen(), también puede saber el número de elementos de un array empleando count(). $Howmany = count($Array);

Cómo añadir elementos a un array.

Ej. 6.2

<?php

$Soups = array ("Monday" => "Clam Chowder", "Tuesday" => "White Chicken Chili", "Wednesday" => "Vegetarian");

$HowMany = count($Soups); print (“The array contains $HowMany elements.<P>\n”); $Soups[“Thursday”] = “Chicken Noodle”; $Soups[“Friday”] = “Tomato”; $Soups[“Saturday”] = “Cream of Broccoli”; $HowManyNow = count($Soups); print (“The array now contains $HowManyNow elements.<P>\n”); ?> Obtendrá por pantalla, lo siguiente: The array contains 3 elements. The array contains 6 elements.

Acceso a los elementos del array. Sólo existe una manera de recobrar un elemento específico (o valor) de un array, sin importar la forma en la que lo establezca: hacer referencia al índice. Ejemplo:

Page 3: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 147

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

$Total = $Array[1]; Al hacer esto puede conservar el valor original en el array y manipularlo separadamente como una variable. La manera más rápida y fácil de acceder a los valores de un array es usar un bucle en conjunción con la función each() tantas veces como elementos tenga el array.

Ej. 6.3

for ($n = 0; $n < count($Array); $n++) { $Line = each($Array); print (“La clave es igual a $Line[key].<BR> El valor es igual a $Line[value].”); } La función each() creará un array llamado $Line con la clave y el valor para $Array y para la posición actual. Un array es como tener un señalizador interno. Al comenzar a usar la función each(), el puntero está en el primer elemento de $Array. La función each() recuperará esos valores y los asignará a $Line[key] (y también a $Line[0]) y a $Line[value] (también a $Line[1]), y después desplazará el puntero hacia el siguiente elemento. La segunda vez que llame a la función each(), recuperará el segundo conjunto de valores y se repetirá el proceso hasta que no haya más elementos en el array y el bucle se extinga. Clasificación de los arrays PHP soporta varios modos de clasificar un array. Cuando clasifique un array, debe recordar que está formado por varios pares de claves y valores. Así, un array puede clasificarse basándose en los valores de las claves. También puede clasificar los valores y mantener las claves correspondientes emparejadas, o clasificar los valores y hacer que reciban claves nuevas. Para clasificar los valores, sin dar importancia a las claves, use sort(). Para clasificar estos valores (de nuevo sin dar importancia a las claves), pero en orden inverso, emplee rsort(). Para clasificar los valores, utilice asort() mientras se mantenga la correlación entre el valor y la clave. Para clasificarlos en orden inverso, emplee arsort() mientras se mantenga la correlación con la clave. Para clasificar las claves, use ksort() mientras se mantenga la correlación entre la clave y el valor. Para clasificarlas de forma inversa, utilice krsort().

Ej. 6.4 <?php $Grades = array (

"Richard" => ”95”, "Sherwood" => "82",

Page 4: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 148

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

"Toni" => "98", “Franz” => ”87”, “Melissa” => ”75”, “Roddy” => ”85”);

print (“Originally, the array looks like this:<BR>”); for ($n = 0; $n < count($Grades); $n++) {

$Line = each($Grades); print (“$Line[key]’s grade is $Line[value].<BR>\n”);

} arsort($Grades); //clasifica el array en modo inverso a los valores para saber quién ha obtenido la mejor nota reset($Grades); //devuelve el puntero al primer elemento del array. print (“<P>After sorting the array by value using arsort(), the array looks like this:<BR>”); for ($n = 0; $n < count($Grades); $n++) {

$Line = each($Grades); print (“$Line[key]’s grade is $Line[value].<BR>\n”);

} ksort($Grades); //organiza el array por claves (alfabéticamente) reset($Grades); //devuelve el puntero al primer elemento del array. print (“<P> After sorting the array by value using ksort(), the array looks like this:<BR>”); for ($n = 0; $n < count($Grades); $n++) {

$Line = each($Grades); print (“$Line[key]’s grade is $Line[value].<BR>\n”);

} ?> Si prueba este programa, saldrá algo parecido en pantalla a lo siguiente: Originally, the array looks like this: Richard’s grade is 95 Sherwood’s grade is 82 Toni’s grade is 98 Franz’s grade is 87 Melissa’s grade is 75 Roddy’s grade is 85 After sorting the array by value using arsort(), the array looks like this: Toni’s grade is 98 Richard’s grade is 95 Franz’s grade is 87 Roddy’s grade is 85 Sherwood’s grade is 82 Melissa’s grade is 75 After sorting the array by value using ksort(), the array looks like this:

Page 5: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 149

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Franz’s grade is 87 Melissa’s grade is 75 Richard’s grade is 95 Roddy’s grade is 85 Sherwood’s grade is 82 Toni’s grade is 98 Ej. 6.5 <html> <head><title>Array de Productos</title></head> <body bgcolor="lightgreen"> Verde claro <?php $products=array('floral talc', 'body mist', 'perfumed powder', 'bath gel'); Se define el array numérico denominado $products con una cadena de cuatro valores, denominados elementos. echo "<b>\$products is $products.<br>\n"; echo "\$products[0] is $products[0].<br>\n"; Se indexa el array con números, empezando en 0. El valor del primer elemento del array, $products[0] es floral talc. echo "\$products[1] is $products[1].<br>\n"; echo "\$products[2] is $products[2].<br>\n"; echo "\$products[3] is $products[3].<br>\n"; ?> <br><em>Agregamos un nuevo elemento al array.</em><br> <?php $products[]='gentle soap'; Se agrega un elemento nuevo al final del array. PHP concluye cuál es el valor del índice nuevo agregando 1 al valor del índice del último elemento del array original. El elemento nuevo es $products[4], al que le asigna el valor ‘gentle soap’. echo "\$products[4] is $products[4].<br>\n";

Page 6: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 150

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

?> </body> </html>

Fig. 6.1

Ej. 6.6 <html> <head><title>Array de Pares Clave/Valor</title></head> <body bgcolor="lavender"> Violeta claro <h3>Un Array Indexado por String</h3>

Page 7: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 151

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

<b> <?php $show=array( 'Title'=>'Aga-Boom', 'Author'=> 'Dmitri Bogatirev', 'Genre'=> 'Physical comedy', ); Un array asociativo denominado $show se define con tres claves y tres valores. echo "\$show is $show.<br>\n"; ?> $show['Title'] is <?=$show['Title']?>.<br> Este segmento HTML contiene una etiqueta breve de PHP y el array asociativo con su índice, una clave. Se extraerán e imprimirán todos los valores asociados con la clave que está entre corchetes. $show['Author'] is <?=$show['Author']?>.<br> $show['Genre'] is <?=$show['Genre']?>.<br> <br /><em>Agregamos un nuevo elemento al array.</em><br /> $show['Theater']='Alcazar';<br /> <?php $show['Theater'] = "Alcazar"; Se crea un par nuevo clave-valor para el array asociativo $show, la clave es Theater y el valor asociado con ella es Alcazar. echo $show['Theater']. "<br>\n"; ?> </b> </body> </html>

Fig. 6.2

Page 8: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 152

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.7 <html> <head><title>Seteando un Rango de Valores</title></head> <body bgcolor="azure"> Celeste claro <font face="arial" size='+1'> <?php echo "Rango de numeros incrementando en 1<br>"; $years=range(2000, 2010); Al array $years se le asigna un campo de números que empiezan en 2000 e incrementan en 1 hasta que se alcanza el final 2010. foreach( $years as $value){ echo "$value ";

Page 9: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 153

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

} El bucle foreach se repite a través de cada elemento del array $years desplegando su valor, un número cada vez. echo "<hr>"; echo "Rango de numeros incrementando en 10<br>"; $decades=range(2000,2050,10); Al array $decades se le asigna un campo de valores que comienzan en 2000, incrementando en pasos de 10, hasta llegar, incluido también, hasta 2050. foreach( $decades as $value){ echo "$value "; } echo "<hr>"; echo "Rango de numeros decrementando en 5<br>"; $decades=range(2000,1980,-5); Al array $decades se le asigna un campo de valores que comienzan en 2000, decrementando en pasos de 5, hasta llegar a 1980. foreach( $decades as $value){ echo "$value "; } echo "<hr>"; echo "Rango de caracteres incrementando en 1(valor ASCII) <br>"; $alpha=range('A', 'Z'); Se asigna al array $alpha un campo de letras mayúsculas: ‘A’, ‘B’, ‘C’…’Z’. foreach( $alpha as $value){ echo "$value "; } ?> </font> </body> </html>

Fig. 6.3

Page 10: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 154

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.8 <html> <html> <head><title>Array de Colores</title></head> <body bgcolor="lightgreen"> <?php // PHP asigna claves comenzando en 0 $colors=array('red', 'green', 'blue'); La función array() crea un array numérico, denominado $colors, que consiste en tres elementos, ‘red, ‘green’ y ‘blue’. Por defecto, el índice comienza en 0. echo "<b>\$colors is $colors.<br>"; // Accediendo a los elementos del array echo "\$colors[0] is $colors[0].<br>";

Page 11: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 155

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

El primer elemento del array se imprime agregando al nombre del array el valor del índice encerrado en el operador []; es decir, $colors[0]. echo "\$colors[1] is $colors[1].<br>"; echo "\$colors[2] is $colors[2].<br>"; $colors[ ]='yellow'; // Agregamos un nuevo elemento Se agrega un elemento nuevo al array. PHP averiguará qué número utilizar para el índice agregando 1 al último número del índice en el array existente. Como el último valor del índice era 3, el valor ‘yellow’ será asignado a $colors[4]. echo "\$colors[3] is $colors[3].<br>"; echo "<hr>"; // Comienza un nuevo array $colors $colors=array(1=>'purple', 2=>'orange'); Se crea un array nuevo con la función array(). Como este array también se denomina $colors, el array $colors original será reemplazado. Este array empieza con un índice de 1. $colors[ ] = 'yellow'; Se agrega un elemento nuevo al array. PHP averiguará qué número utilizar para el índice agregando 1 al último número del índice en el array existente. Como el último valor del índice era 2, el valor ‘yellow’ será asignado a $colors[3]. echo "\$colors[1] is $colors[1].<br>"; echo "\$colors[2] is $colors[2].<br>"; echo "\$colors[3] is $colors[3].<br>"; ?> </body> </html>

Fig. 6.4

Page 12: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 156

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.9 <html> <head><title>Array de Libros</title></head> <body bgcolor="lightblue"> <?php $book=array('Title' => 'War and Peace', 'Author' => 'Tolstoy', 'Publisher' => "Oxford University Press" ); Se crea un array asociativo llamado $book que consiste en pares clave-valor. Las claves están a la izquierda del operador =>. Los valores asociados están a la derecha del operador =>. $book['ISBN'] = "0192833987"; // Agregamos un nuevo elemento Se asigna un valor nuevo, “0192833987”, al array $book. La clave es ‘ISBN’.

Page 13: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 157

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

echo "<b>\$book is $book.<br>"; echo "\$book['Title'] ". $book['Title'] .".<br>"; Se accede al valor del array $book mediante la clave ‘Title’, que va entre corchetes. Ahora, en lugar de utilizar un número para acceder al array, se utiliza una cadena. echo "\$book['Author'] is ". $book['Author'] .".<br>"; echo "\$book['Publisher'] is ". $book['Publisher'] .".<br>"; echo "\$book['Pages'] is ". $book['ISBN'] .".<br>"; ?> </body> </html>

Fig. 6.5

Ej. 6.10 <html>

Page 14: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 158

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

<head><title>El bucle For</title></head> <body bgcolor="lightgreen"> <table border="1" bordercolor="black" bgcolor="yellow"> <caption>Elementos</caption> <?php $colors=array('red', 'green', 'blue', 'yellow'); Al array numérico $colors se le asigna una lista de colores. for($i = 0; $i < count($colors); $i++){ El primer argumento del bucle for, $i = 0, configura el valor inicial de $i en 0, lo que representa el primer índice del array. Si el valor del índice, $i, es menor que el tamaño del array (devuelto por la función count()), se introduce el cuerpo del bucle, después de desplegar el color, se ejecuta el tercer argumento del bucle for; es decir, incrementar el valor de $i en 1. echo "<tr><td><b>$colors[$i]</b></td></tr>"; Cada vez que pasa el bucle, se despliega el siguiente elemento del array $colors en una celda de la tabla. } ?> </table> </body> </html>

Fig. 6.6

Page 15: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 159

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.11 <html> <head><title>El bucle While</title></head> <body bgcolor="lightgreen"> <table border='1' bordercolor='black' bgcolor='yellow'> <caption>Elementos</caption> <?php $colors=array('red', 'white', 'aqua', 'yellow'); Se crea un array numérico denominado $colors y se le asignan valores de cadena. $i = 0; La variable $i, configurada en 0, será el valor inicial del bucle y se utilizará como índice del array. while( $i < count($colors)) {

Page 16: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 160

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

La función count () devuelve el número de elementos del array. La expresión while comprueba que el valor de $i es menor que el tamaño del array. echo "<tr bgcolor=$colors[$i]><td><b>$colors[$i] </b></td></tr>"; $i++; El valor de $i se utilizará como valor del índice del array $colors. Cada vez que pase el bucle, se incrementará el valor en 1. En este ejemplo, el valor de elemento, un color, se utilizará como color de fondo para la fila actual y como el texto impreso en la celda de datos de la tabla. } ?> </table> </body> </html>

Fig. 6.7

Page 17: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 161

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.12 <html> <head><title>El bucle Foreach</title></head> <body bgcolor="lightgreen"> <b> <?php $colors=array('red', 'green', 'blue', 'yellow'); Se define un array numérico de cuatro colores. $employee=array('Name' => 'Jon Doe', 'ID' => '23d4', 'Job Title' => 'Designer', 'Department' => 'Web Development'); Se define un array asociativo de cuatro pares clave-valor. foreach ($colors as $value){ // Cada valor es almacenado en $value echo "$value <br>"; El bucle foreach se usa para repetirse por cada elemento del array $colors. La expresión $colors as $value significa: en el array $colors se asigna el valor de cada elemento a la variable $value, uno cada vez, hasta que finalice el array. Se desplegará cada valor a su vez. } echo "<hr>"; foreach ($employee as $key => $value){ // Array asociativo echo "employee[$key] => $value<br>"; Este bucle foreach se repite en cada par clave-valor de un array asociativo, denominado $employee. El nombre del array va seguido de la palabra clave as y de una variable que representa la clave, denominada $key, seguida del operador => y una variable que representa el valor, denominada $value. } ?> </b> </body> </html>

Fig. 6.8

Page 18: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 162

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Ej. 6.13 <html> <head><title>La funcion count()</title></head> <body bgcolor="lightgreen"> <?php $colors=array('red', 'green', 'blue'); Se le asignan tres valores al array denominado $colors. $colors[]='yellow'; Se agrega un elemento nuevo al array $colors. $size = count($colors); La función count () devuelve el número de elementos del array. echo "El tamaño del array es $size.<br>"; echo "<hr>";

Page 19: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 163

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

?> </body> </html>

Fig. 6.9

Ej. 6.14 <head><title>Ordenando un Array</title></head> <body bgcolor="CCFFFF"> <font size="+1"> <pre> <b> Ordenando un Array alfabeticamente <br /> <?php $animals = array("dog", "cat", "horse", "monkey", "gorilla", "zebra");

Page 20: Unidad 6 Arrays

Programación II – Unidad 6 Arrays - Página Nº: 164

Escuela Superior de Comercio Nº 49 – “Cap. Gral. Justo José de Urquiza” Carrera Analista de Sistemas de Computación – Nivel Superior

Al array $animals se le asigna una lista de valores en cadena. sort($animals); La función sort () clasifica los valores del array alfabéticamente y reorganiza los valores del índice. print_r($animals); La función print_r () imprime el nuevo array clasificado. Todos los valores del índice se han reorganizado. ?> </pre> </b> </body> </html>

Fig. 6.10