SlideShare uma empresa Scribd logo
1 de 196
Arreglos
PROGRAMACIÓN PARA INTERNET



                             ●   Los arreglos son los reyes indiscutibles de las
                                 estructuras de datos avanzadas en PHP.
                             ●   Los arreglos en PHP son extremadamente flexibles,
                                 permiten llaves numéricas de incremento automático,
                                 llaves alfanuméricas o una mezcla de ambos, y son
                                 capaces de almacenar casi cualquier valor, incluyendo
                                 otros arreglos.
                             ●   Con más de setenta funciones para la manipulación
                                 de ellos, los arreglos pueden hacer en la práctica
                                 cualquier cosa que puedas imaginar y algo más.


                                               Lic. Nancy Michelle Torres Villanueva   1
Arreglos...
PROGRAMACIÓN PARA INTERNET




                             ●   Todos los arreglos son colecciones ordenadas
                                 de elementos, llamados elementos.
                             ●   Cada elemento tiene un valor, y es identificada
                                 por una llave que es exclusiva del arreglo al
                                 que pertenece.
                             ●   Las claves pueden ser números enteros o
                                 cadenas.




                                             Lic. Nancy Michelle Torres Villanueva   2
Creación de arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   $a = array (10, 20, 30);
                             ●   $b = array (’a’ => 10, ’b’ => 20, ’cee’ => 30);
                             ●   $c = array (5 => 1, 3 => 2, 1 => 3,);
                             ●   $d = array();
                             ●   $e = array(Hola, Adios);
                             ●   $f = array(“uno”, “dos”, “tres”);




                                                 Lic. Nancy Michelle Torres Villanueva   3
Acceso a los valores
PROGRAMACIÓN PARA INTERNET




                             Los valores contenidos en un arreglo se
                             pueden recuperar y modificar usando
                             corchetes [ ].




                                         Lic. Nancy Michelle Torres Villanueva   4
PROGRAMACIÓN PARA INTERNET




                             ●   Siguiente llave numerica mas grande
                             $x[] = 10;
                             ●   Asignamos en que llave guardar
                             $x[’aa’] = 11;
                             ●   Imprimimos lo guardado en la llave 0, lo cual
                                 será 10
                             echo $x[0];


                                             Lic. Nancy Michelle Torres Villanueva   5
PROGRAMACIÓN PARA INTERNET




                             $newArray[0] = "PHP";
                             $newArray[1] = "MySQL";
                             $newArray[2] = "Apache";

                             ● ¿Qué hace?
                             $newArray[2] = "Cherokee";




                                        Lic. Nancy Michelle Torres Villanueva   6
PROGRAMACIÓN PARA INTERNET




                             $shopping =      array( );
                             $shopping[]      = "Leche";
                             $shopping[]      = "Cafe";
                             $shopping[]      = "Azucar";

                             ●   En que posiciones ha quedado cada elemento?




                                            Lic. Nancy Michelle Torres Villanueva   7
PROGRAMACIÓN PARA INTERNET




                             $array = array(
                                "primero"=>1,
                                "segundo"=>2,
                                "tercero"=>3);

                             ● Qué imprime?
                             print $array["segundo"];



                                        Lic. Nancy Michelle Torres Villanueva   8
PROGRAMACIÓN PARA INTERNET




                             $numeros = array(
                                1=>"uno",
                                "dos",
                                "tres",
                                "cuatro");

                             ●   Cuál es la llave del item “tres”??



                                              Lic. Nancy Michelle Torres Villanueva   9
PROGRAMACIÓN PARA INTERNET




                             $numeros = array(
                               1=>"uno",
                               3=>"tres",
                               5=>"cinco");
                             $numeros[]="otro";

                             ●   En que llave quedó el elemento “otro”?



                                             Lic. Nancy Michelle Torres Villanueva   10
PROGRAMACIÓN PARA INTERNET




                             $a = array (
                               ’4’ => 5,
                               ’a’ => ’b’);
                             $a[] = 44;

                             ●   En qué llave quedará el item 44?




                                             Lic. Nancy Michelle Torres Villanueva   11
PROGRAMACIÓN PARA INTERNET




                             $a = array (
                               ’A’ => “Esta es una A”,
                               ’B’ => “Esta es una B”);
                             $a[] = “Esta que será”;

                             ●   En qué llave quedará el item “Esta que será”?




                                             Lic. Nancy Michelle Torres Villanueva   12
PROGRAMACIÓN PARA INTERNET




                             $numeros = array(1=>"uno", 3=>"tres",
                             5=>"cinco");

                             $numeros[2] = "dos";
                             $numeros[4] = "cuatro";
                             $numeros[6] = "seis";

                             ●   En que orden ha quedado el arreglo?


                                             Lic. Nancy Michelle Torres Villanueva   13
PROGRAMACIÓN PARA INTERNET




                             ●   Se dice pues que las llaves son
                                 automáticamente incrementales y siempre los
                                 elementos se agregarán en el siguiente valor
                                 mayor posible y al final del arreglo.
                             ●   Tenga en cuenta que las llaves diferencian
                                 entre mayúsculas y minúsculas. Por lo tanto, la
                                 llave "A" es diferente de 'a', pero las llaves '1' y
                                 1 son los mismos.



                                              Lic. Nancy Michelle Torres Villanueva   14
Impresión de arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   PHP provee dos funciones para imprimir el
                                 valor de una variable recursivamente:
                             ●   print_r()
                             ●   var_dump()




                                              Lic. Nancy Michelle Torres Villanueva   15
print_r() y var_dump()
PROGRAMACIÓN PARA INTERNET




                             ●   var_dump() muestra además el tipo de dato
                             ●   var_dump() puede mostrar el valor de varias
                                 variables al mismo tiempo
                             ●   print_r() puede regresar el valor como una
                                 cadena




                                             Lic. Nancy Michelle Torres Villanueva   16
Arreglos multidimensionales
PROGRAMACIÓN PARA INTERNET




                             ●   A menudo los datos no pueden ser
                                 representados en un arreglo sencillo de escalar
                                 en valores enteros, cadenas, booleanos, y
                                 flotantes. Algunos datos sólo pueden estar
                                 representados cuando los arreglos tienen otros
                                 arreglos de valores.




                                             Lic. Nancy Michelle Torres Villanueva   17
PROGRAMACIÓN PARA INTERNET




                             $array = array();
                             $array[] = array(
                               ’tu’,
                               ’yo’);
                             $array[] = array(
                               ’el’,
                               ’nos’);
                             echo $array[0][1] . $array[1][0];
                             ●   Qué imprime?
                                           Lic. Nancy Michelle Torres Villanueva   18
PROGRAMACIÓN PARA INTERNET



                             $planetas = array(
                                 array("Mercurio", 0.39, 0.38),
                                 array("Venus",         0.72, 0.95),
                                 array("Tierra",          1.0,          1.0),
                                 array("Marte",           1.52, 0.53) );


                             print $planetas[2][0];


                             ●   Qué imprime?


                                            Lic. Nancy Michelle Torres Villanueva   19
PROGRAMACIÓN PARA INTERNET



                             $planetas2 = array(
                                 "Mercurio"=> array("dist"=>0.39, "dia"=>0.38),
                                 "Venus"    => array("dist"=>0.72, "dia"=>0.95),
                                 "Tierra"   => array("dist"=>1.0,                        "dia"=>1.0,
                                                     "satelites"=>array("Luna")),
                                 "Marte"    => array("dist"=>0.39, "dia"=>0.53,
                                                     "satelites"=>array("Phobos",
                             "Deimos"))
                             );


                             print $planetas2["Tierra"][satelites"][0];
                             ●    Qué imprime?
                                                 Lic. Nancy Michelle Torres Villanueva                 20
Asignando a variables
                                          independientes
PROGRAMACIÓN PARA INTERNET




                             ●   A veces es más fácil trabajar con los valores de
                                 un arreglo mediante la asignación a las
                                 variables individuales. Si bien esto puede ser
                                 logrado mediante la extracción de elementos
                                 individuales y la asignación de cada uno de
                                 ellos a una variable diferente, PHP ofrece un
                                 acceso rápido.




                                             Lic. Nancy Michelle Torres Villanueva   21
$info = array('café', 'color', 'cafeína');
                             ●   Todas las variables
PROGRAMACIÓN PARA INTERNET


                             list($bebida, $color, $componente) = $info;


                             ●   Solo algunas variables
                             list($bebida, , $componente) = $info;


                             ●   Solo la tercera
                             list( , , $componente) = $info;




                                             Lic. Nancy Michelle Torres Villanueva   22
Unión de arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   Se logra con el operador +
                             ●   Los elementos con llaves repetidas solo se
                                 muestran una vez, si el contenido es distinto,
                                 esto representa perdida de información




                                             Lic. Nancy Michelle Torres Villanueva   23
PROGRAMACIÓN PARA INTERNET




                             $a   = array (1, 2, 3);
                             $b   = array (’a’ => 1, ’b’ => 2, ’c’
                             =>   3);
                             $c   = $a+$b;

                             ●   Cuál es el contenido de $c?




                                             Lic. Nancy Michelle Torres Villanueva   24
PROGRAMACIÓN PARA INTERNET




                             $a = array (1, 2, 3);
                             $b = array (’a’ => 1, 2, 3);
                             $c = $a+$b;

                             ●   Cuál es el contenido de $c?




                                             Lic. Nancy Michelle Torres Villanueva   25
PROGRAMACIÓN PARA INTERNET




                             $a = array ('a'                =>       1,
                                         'b'                =>       2,
                                         'c'                =>       3);
                             $b = array ('a'                =>       4,
                                         'b'                =>       5,
                                         'c'                =>       6);
                             $c = $a+$b;

                             ●   Cuál es el contenido de $c?
                                             Lic. Nancy Michelle Torres Villanueva   26
PROGRAMACIÓN PARA INTERNET




                             $cosas = array("silla", "mesa",
                             "maleta", "caja");
                             $edificios = array("casa", "depa",
                             "palacio");
                             $partes = array("cabeza", "pies");

                             $agregados = $partes + $edificios +
                             $cosas;

                             ●   Cuál es el contenido de $agregados?
                                            Lic. Nancy Michelle Torres Villanueva   27
Unión de arreglos sin perder
                                          elementos
PROGRAMACIÓN PARA INTERNET




                             ●   La funcion array_merge() concatena uno o
                                 mas arreglos, agregandolos al final.
                             ●   Si los arreglos tienen llaves de cadenas
                                 iguales, entonces el ultimo valor va a
                                 sobrescribir por la vez previa en que aparecio
                                 la llave.




                                             Lic. Nancy Michelle Torres Villanueva   28
PROGRAMACIÓN PARA INTERNET




                             $array1 = array("color" => "rojo", 2,
                             4);
                             $array2 = array("a", "b", "color" =>
                             "verde", "forma" => "trapezoide", 4);
                             $result = array_merge($array1,
                             $array2);

                             ●   ( [color] => verde, [0] => 2, [1] => 4, [2] => a, [3]
                                 => b, [forma] => trapezoide, [4] => 4)


                                               Lic. Nancy Michelle Torres Villanueva   29
Comparando arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   $a = array (1, 2, 3);
                             ●   $b = array (1 => 2, 2 => 3, 0 => 1);
                             ●   $c = array (’a’ => 1, ’b’ => 2, ’c’ => 3);
                             ●


                             ●   $a == $b
                             ●   $a === $b
                             ●   $a == $c


                                               Lic. Nancy Michelle Torres Villanueva   30
Operadores de comparación de
                                           arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   ==
                             Mismo número de elementos con las mismas
                             llaves sin importar el orden.
                             ●   ===
                             Mismo par llave/valor en el mismo orden




                                           Lic. Nancy Michelle Torres Villanueva   31
Tamaño de un arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   El tamaño de un arreglo puede ser obtenido
                                 con la función count().
                             ●   Funciona con cualquier variable, no
                                 necesariamente arreglos, si se quiere asegurar
                                 de que lo este usando en un arreglo, deberá
                                 primero utilizar la función is_array()




                                             Lic. Nancy Michelle Torres Villanueva   32
PROGRAMACIÓN PARA INTERNET




                             $a =   array (1, 2, 4);
                             $b =   array();
                             $c =   10;
                             echo   count($a);
                             echo   count($b);

                             if is_array($c)
                               echo count($c);

                                          Lic. Nancy Michelle Torres Villanueva   33
Repeticiones de un elemento en
                                            el arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   count() devuelve el total de elementos en un
                                 arreglo, pero si se desea contar de manera
                                 unica los elementos se utiliza
                                 array_count_values().
                             ●   Devuelve un arreglo asociando cada elemento
                                 con la cantidad de repeticiones.




                                             Lic. Nancy Michelle Torres Villanueva   34
$mascotas = array(
                                "Juan"=>"Perro",
PROGRAMACIÓN PARA INTERNET

                                "Ana"=>"Conejo",
                                "Pedro"=>"Gato",
                                "Maria"=>"Hamster",
                                "Luis"=>"Perro",
                                "Paco"=>"Gato");


                             $frecuencia = array_count_values($mascotas);


                             [Perro] => 2
                             [Conejo] => 1
                             [Gato] => 2
                             [Hamster] => 1
                                              Lic. Nancy Michelle Torres Villanueva   35
Determinar si un elemento en una
                                   posición dada existe
PROGRAMACIÓN PARA INTERNET




                             $a = array (’a’ => 1, ’b’ => 2);
                             echo isset ($a[’a’]);
                             echo isset ($a[’c’]);

                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo isset ($a[’a’]);

                             ●   Qué impresiones se obtienen?

                                            Lic. Nancy Michelle Torres Villanueva   36
Determinar si una llave existe
PROGRAMACIÓN PARA INTERNET




                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo array_key_exists ('a',$a);

                             ●   Qué aparece en pantalla?




                                            Lic. Nancy Michelle Torres Villanueva   37
Buscar si un elemento existe en
                                            el arreglo
PROGRAMACIÓN PARA INTERNET




                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo in_array (2, $a);

                             ●   Qué aparece en pantalla?

                             ●   Se puede pasar un tercer parámetro para
                                 obligar el tipo de dato.



                                            Lic. Nancy Michelle Torres Villanueva   38
Obtener la posición de un
                                     elemento en el arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   array_search() funciona igual que in_array()
                                 solo que este devolverá la llave. Si el valor no
                                 fue encontrado devuelve false.
                             ●   Tiene un tercer parámetro opcional para obligar
                                 la concordancia del tipo de dato


                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo array_search (2, $a);
                             ●   Qué aparece en pantalla?

                                              Lic. Nancy Michelle Torres Villanueva   39
Un arreglo con las llaves
PROGRAMACIÓN PARA INTERNET




                             ●   Con array_keys() se obtiene un arreglo con las
                                 llaves de otro arreglo.
                             ●   Se pueden poner parámetros opcionales y
                                 entonces solo devolverá las llaves de los
                                 elementos indicados en los parámetros.




                                             Lic. Nancy Michelle Torres Villanueva   40
$mascotas = array(
                                "Juan"=>"Perro",
PROGRAMACIÓN PARA INTERNET

                                "Ana"=>"Conejo",
                                "Pedro"=>"Gato",
                                "Maria"=>"Hamster",
                                "Luis"=>"Perro",
                                "Paco"=>"Gato");


                             $llaves = array_keys($mascotas);
                             ("Juan”, “Ana”, “Pedro”, “Maria”, “Luis”, “Paco")


                             $llaves = array_keys($mascotas,”Perro”);
                             ("Juan”, “Luis")


                                           Lic. Nancy Michelle Torres Villanueva   41
Un arreglo sin llaves
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_values() genera un nuevo
                                 arreglo solamente con los valores y olvida las
                                 llaves




                                             Lic. Nancy Michelle Torres Villanueva   42
Eliminación de elementos
PROGRAMACIÓN PARA INTERNET




                             ●   Un elemento puede ser eliminado de un
                                 arreglo, o un arreglo completo se puede
                                 eliminar llamando a unset ( ).
                             ●   Sin embargo, la eliminación de un elemento no
                                 reasigna indices.




                                             Lic. Nancy Michelle Torres Villanueva   43
PROGRAMACIÓN PARA INTERNET




                             $favoritos = array("PHP", "Ace",
                             "COBOL", "Java", "C++");

                             ● Eliminar COBOL del arreglo
                             unset($favoritos[2]);




                                           Lic. Nancy Michelle Torres Villanueva   44
Eliminando elementos repetidos
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_unique() devuelve un arreglo
                                 sin items repetidos.
                             ●   Si el arreglo tiene llaves, se quedará con la
                                 primer llave, y las siguientes ocasiones en que
                                 se repita, serán omitidas.




                                             Lic. Nancy Michelle Torres Villanueva   45
Un arreglo rellenado
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_fill() crea un arreglo rellenado
                                 con el dato indicado.
                             ●   Se debe indicar la primer llave, la cantidad de
                                 repeticiones y el dato a repetir.

                             $unidad = array_fill(2, 5, "uno");

                             Array ( [2] => uno [3] => uno [4] =>
                             uno [5] => uno [6] => uno )

                                             Lic. Nancy Michelle Torres Villanueva   46
Arreglo con una serie
PROGRAMACIÓN PARA INTERNET




                             ●   La función range() crea un arreglo con una
                                 serie dentro.
                             ●   Se debe indicar el primer valor y el último valor.
                                 Puede indicarse como parámetro opcional el
                                 tipo de incremento

                             $letras = range("a", "z", 5);

                             Array ( [0] => a [1] => f [2] => k
                             [3] => p [4] => u [5] => z )
                                              Lic. Nancy Michelle Torres Villanueva   47
Invertir un llaves por valores
PROGRAMACIÓN PARA INTERNET




                             ● La función array_flip() invierte las llaves por
                               los valores en un arreglo.
                             $a = array (’a’, ’b’, ’c’);
                             array_flip ($a);

                             ["a"]=> 0 , ["b"]=> 1 , ["c"]=> 2)




                                            Lic. Nancy Michelle Torres Villanueva   48
Invertir el orden de un arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_reverse() invierte el orden de
                                 los elementos de un arreglo.

                             $cont = array("cero", "uno", "dos",
                             "tres", "cuatro");
                             $inverso = array_reverse($cont);

                             Array ( [4] => cuatro [3] => tres [2]
                             => dos [1] => uno [0] => cero )

                                             Lic. Nancy Michelle Torres Villanueva   49
Convertir un arreglo en una
                                             cadena
PROGRAMACIÓN PARA INTERNET




                             ●   La función implode() regresa una cadena
                                 creada por la union de cada uno de los
                                 elementos en el arreglo, insertando una cadena
                                 de unión entre cada elemento.
                             ● join() es un alias de implode() y funciona
                               exactamente igual
                             $animales = array("canguro", "leon",
                             "jirafa”);
                             implode(", ", $animales);


                                             Lic. Nancy Michelle Torres Villanueva   50
Convertir una cadena en un
                                            arreglo
PROGRAMACIÓN PARA INTERNET




                             ● La función explode() regresa un arreglo de
                               cadenas creadas por la ruptura de una cierta
                               cadena en cada ocurrencia despues de un
                               separador dado
                             $palabras = explode(" ", "Ahora es el
                             momento");
                             print_r($palabras);

                             Array ( [0] => Ahora [1] => es [2] => el [3] =>
                             momento )
                                            Lic. Nancy Michelle Torres Villanueva   51
Iteraciones en un arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   Existen varias funciones para poder trabajar co
                                 las iteraciones dentro de un arreglo
                                 ●   reset() Reinicia el puntero del arreglo para poder
                                     recorrerlo.
                                 ●   prev() Recorre el puntero a la posición anterior
                                 ●   next() Recorre el puntero a la siguiente posición
                                 ●   current() Entrega el valor guardado en la posición
                                     actual
                                 ●   key() Devuelve la llave de la posición actual
                                 ●   end() Mueve el puntero a la posición final

                                                Lic. Nancy Michelle Torres Villanueva   52
$array = array(’foo’ => ’bar’, ’baz’,
                             ’bat’ => 2);
PROGRAMACIÓN PARA INTERNET



                             function displayArray($array) {
                                 reset($array);
                                 while (key($array) !== null) {
                                     echo key($array).": ".current($array);
                                     next($array);
                                 }
                             }




                                             Lic. Nancy Michelle Torres Villanueva   53
foreach()
PROGRAMACIÓN PARA INTERNET




                             ●   Es una manera sencilla de recorrer una arreglo.

                             $array = array(’foo’, ’bar’, ’baz’);
                             foreach ($array as $key => $value) {
                                echo "$key: $value";
                             }




                                             Lic. Nancy Michelle Torres Villanueva   54
Iteraciones con funciones
PROGRAMACIÓN PARA INTERNET




                             ●   array_walk()
                             Aplica una función definida por el usuario a cada
                             miembro de un arreglo.

                             ●   array_walk_recursive()
                             Aplica una función definida por el usuario
                             recursivamente a cada miembro de un arreglo.



                                                Lic. Nancy Michelle Torres Villanueva   55
$frutas = array("d" => "limon", "a"
                             => "naranja", "b" => "platano", "c"
                             => "manzana");
PROGRAMACIÓN PARA INTERNET




                             function test_print($valor, $llave)
                             {
                                 echo "$llave. $valor<br />n";
                             }
                             array_walk($frutas, 'test_print');




                                        Lic. Nancy Michelle Torres Villanueva   56
$frutas = array("d" => "limon", "a"
                             => "naranja", "b" => "platano", "c"
                             => "manzana");
PROGRAMACIÓN PARA INTERNET




                             function test_alter(&$valor, $llave,
                             $prefix)
                             {
                                 $valor = "$prefix: $valor";
                             }
                             array_walk($frutas,
                             'test_print','Fruta: ');



                                        Lic. Nancy Michelle Torres Villanueva   57
$dulce = array('a' => 'manzana', 'b'
                             => 'platano');
PROGRAMACIÓN PARA INTERNET


                             $frutas = array('dulce' => $dulce,
                             'acido' => 'limon');

                             function test_print($valor, $llave)
                             {
                                 echo "$llave tiene $valorn";
                             }

                             array_walk_recursive($frutas,
                             'test_print');

                                        Lic. Nancy Michelle Torres Villanueva   58
Ordenar un arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   Los elementos de un arreglo se ordenan
                                 ascedente o descendentemente, sin embargo,
                                 las llaves se perderan en el proceso.
                                 ●   sort() Ascendentemente
                                 ●   rsort() Descendentemente
                             ●   Se tiene un segundo parámetro opcional para
                                 indicar si el ordenamiento será alfabético o
                                 numérico



                                               Lic. Nancy Michelle Torres Villanueva   59
Banderas de ordenamiento
PROGRAMACIÓN PARA INTERNET




                             ●   SORT_REGULAR – Compara items
                                 normalmente (No cambia los tipos)
                             ●   SORT_NUMERIC – Compara items
                                 numéricamente
                             ●   SORT_STRING – Compara items como
                                 cadenas
                             ●   SORT_LOCALE_STRING – Compara items
                                 como cadenas basado en la configuración local


                                            Lic. Nancy Michelle Torres Villanueva   60
PROGRAMACIÓN PARA INTERNET




                             $numbers = array(24, 19, 3, 16, 56,
                             8, 171);
                             sort($numbers);
                             ●   ( [0] => 3, [1] => 8, [2] => 16, [3] => 19, [4] =>
                                 24, [5] => 56, [6] => 171 )


                             rsort($numbers);
                             ●   ( [0] => 171, [1] => 56, [2] => 24, [3] => 19, [4]
                                 => 16, [5] => 8, [6] => 3 )

                                              Lic. Nancy Michelle Torres Villanueva   61
PROGRAMACIÓN PARA INTERNET




                             $arr = array ("1", 10, "Maria",
                             "maria", "Memo", 1, 5, 9);
                             sort($arr);

                             ●   En que orden quedará este arreglo?




                                            Lic. Nancy Michelle Torres Villanueva   62
Ordenar un arreglo manteniendo
                                        las llaves
PROGRAMACIÓN PARA INTERNET




                             ●   Para que al ordenar las llaves se mantengan,
                                 se utilizan las funciones:
                                 ●   asort() Ascendentemente
                                 ●   arsort() Descendentemente




                                               Lic. Nancy Michelle Torres Villanueva   63
Ordenar un arreglo por sus llaves
PROGRAMACIÓN PARA INTERNET




                             ●   Hemos visto como ordenar un arreglo en base
                                 a sus elementos, pero también podemos
                                 ordenarlo en base a sus llaves.
                                 ●   ksort() Ascendentemente
                                 ●   krsort() Descendentemente




                                               Lic. Nancy Michelle Torres Villanueva   64
Ordenar un arreglo utilizando una
                              función definida por el usuario
PROGRAMACIÓN PARA INTERNET




                             ●   Si deseas ordenar un arreglo de alguna otra
                                 manera que no sea numérica o
                                 alfabéticamente, puedes crear tu propia función
                                 y luego mandar a ordenar con esa función.
                                 ●   usort( ) Ordena el arreglo basado en el valor de
                                     cada elemento aplicando una nueva llave
                                 ●   uasort( ) Mantiene el par llave/valor
                                 ●   uksort( ) Reordena los elementos basado en la
                                     llave de cada elemento



                                                Lic. Nancy Michelle Torres Villanueva   65
function cmp_length($a, $b)
                             {
PROGRAMACIÓN PARA INTERNET



                                 if (strlen($a) < strlen($b))
                                     return -1;
                                 if (strlen($a) > strlen($b))
                                     return 1;

                                 //Si el tamaño es igual
                                 return 0;
                             }


                                        Lic. Nancy Michelle Torres Villanueva   66
PROGRAMACIÓN PARA INTERNET




                             $animals = array("cow", "ox",
                             "hippopotamus", "platypus");

                             usort($animals, "cmp_length");



                             ●   ( [0] => ox, [1] => cow, [2] => platypus, [3] =>
                                 hippopotamus )


                                              Lic. Nancy Michelle Torres Villanueva   67
Desordenando un arreglo
PROGRAMACIÓN PARA INTERNET




                             ●   La función shuffle() desacomoda un arreglo de
                                 manera random. Las llaves se pierden




                                            Lic. Nancy Michelle Torres Villanueva   68
Obtener un elemento random
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_rand() toma uno o mas
                                 elementos random del arreglo y devuelve la
                                 llave de estos.




                                             Lic. Nancy Michelle Torres Villanueva   69
Arreglos como pilas y colas
PROGRAMACIÓN PARA INTERNET




                             ●   PHP ofrece funciones para las actividades de
                                 push y pull en las pilas y para shift y unshift en
                                 las colas.
                                 ●   array_push
                                 ●   array_pop
                                 ●   array_shift
                                 ●   array_unshift




                                                   Lic. Nancy Michelle Torres Villanueva   70
PROGRAMACIÓN PARA INTERNET




                             $stack = array();
                             array_push($stack, ’bar’, ’baz’);
                             $last_in = array_pop($stack);




                             $queue = array(’qux’, ’bar’, ’baz’);
                             $first_element = array_shift($queue);
                             array_unshift($queue, ’foo’);
                                        Lic. Nancy Michelle Torres Villanueva   71
Diferencia entre dos arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_diff() compara dos arreglos y
                                 devuelve la diferencia.
                             ●   Devuelve un arreglo con todas las entradas del
                                 arreglo1 que no estan en los demás arreglos.
                             ●   No toma en cuenta las llaves, de modo que si
                                 se desea tomar en cuenta las llaves, se utiliza
                                 array_diff_assoc()




                                             Lic. Nancy Michelle Torres Villanueva   72
Diferencia entre dos arreglos en
                                        base a sus llaves
PROGRAMACIÓN PARA INTERNET




                             ●   Para buscar las diferencias entre dos arreglos
                                 tomando en cuenta las llaves se utiliza la
                                 función array_diff_key()
                             ●   En ambas funciones se puede utilizar una
                                 función definida por el usuario y las funciones a
                                 utilizar son array_diff_uassoc() y
                                 array_diff_ukey()




                                             Lic. Nancy Michelle Torres Villanueva   73
Intersección de dos arreglos
PROGRAMACIÓN PARA INTERNET




                             ●   La función array_intersect() devuelve todos
                                 los elementos del arreglo1 que existen en los
                                 demás arreglos.
                             ●   Si se desea revisar también las llaves se utiliza
                                 la función array_intersect_assoc().
                             ●   array_intersect_key() se utiliza para validar
                                 las llaves.
                             ●   array_intersect_ukey() y
                                 array_intersect_uassoc() para validar con una
                                 función
                             ●                Lic. Nancy Michelle Torres Villanueva   74
Repaso de arreglos
PROGRAMACIÓN PARA INTERNET



                             ●   print_r                                 ●   array_keys
                             ●   var_dump                                ●   array_values
                             ●   list                                    ●   unset
                             ●   is_array                                ●   array_unique
                             ●   count                                   ●   array_fill
                             ●   array_count_values                      ●   array_range
                             ●   isset                                   ●   array_flip
                             ●   array_key_exists                        ●   array_reverse
                             ●   in_array                                ●   array_walk
                             ●   array_search                            ●   array_walk_recursive

                                                Lic. Nancy Michelle Torres Villanueva               75
Repaso de arreglos
PROGRAMACIÓN PARA INTERNET



                             ●   reset                                ●   ksort
                             ●   prev                                 ●   krsort
                             ●   next                                 ●   usort
                             ●   current                              ●   uasort
                             ●   key                                  ●   uksort
                             ●   end                                  ●   shuffle
                             ●   sort                                 ●   array_rand
                             ●   rsort                                ●   array_merge
                             ●   asort                                ●   array_push
                             ●   arsort                               ●   array_pop


                                             Lic. Nancy Michelle Torres Villanueva      76
Repaso de arreglos
PROGRAMACIÓN PARA INTERNET



                             ●   array_shift                                  ●   array_intersect_uassoc
                             ●   array_unshift                                ●   array_intersect_ukey
                             ●   array_diff
                             ●   array_diff_assoc
                             ●   array_diff_key
                             ●   array_diff_uassoc
                             ●   array_diff_ukey
                             ●   array_intersect
                             ●   array_intersect_assoc
                             ●   array_intersect_key


                                                     Lic. Nancy Michelle Torres Villanueva                 77
Repaso




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question
        ¿Cómo se declaran
            arreglos?




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer


 $variable = array();

            $var[]= “cosa”;


 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question
¿Cuáles son los dos tipos de
 arreglos y cuáles son sus
        diferencias?



  Programación para Internet
 Lic. Nancy Michelle Torres Villanueva
Answer
    Normales y Asociativos
 Los normales son los que no
llevan un indice en cambio los
  asociativos si llevan indice.



 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question

           ¿Cómo elimino un
              arreglo?


 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer
unset ($arreglo[pos]); este
elimina una posición y no
        reordena.
  unset ($arreglo); este
       elimina todo
  Programación para Internet
 Lic. Nancy Michelle Torres Villanueva
Question

  ¿Cómo separo una
cadena en varias partes
    de un arreglo?

 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer
   Con la función explode()

$variable = explode(" ", "ahora es el
             tiempo");




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question

      ¿Cómo genero una
     cadena a partir de un
          arreglo?

 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer
Con la función implode o join

       print "Animales que he visto: " .
       implode(", ", $animalesVistos);




  Programación para Internet
 Lic. Nancy Michelle Torres Villanueva
Question

¿Cómo ordeno un arreglo
sin perder el orden de las
     llaves(índices)?

 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer


               Con la función asort()




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question

¿Cómo ordeno de manera
inversa en base al índice?


  Programación para Internet
 Lic. Nancy Michelle Torres Villanueva
Answer


                 Con la función krsort()




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question
    ¿Cuál es la diferencia
      entre la función
      array_search() y
         in_array()?


 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer
   La función array_search()
devuelve la posición, si no existe
        devuelve falso.

La función in_array() solo dice si
existe o no o devueve resultado
            booleano.
  Programación para Internet
 Lic. Nancy Michelle Torres Villanueva
Question

¿Cuáles son las maneras
de concatenar arreglos?


 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer
                       Con + y merge

 La diferencia de estos son la
    manera de preservar la
 información en caso de estar
           repetida

 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Question

          ¿Cómo invierto un
             arreglo?


 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Answer


   Con la función array_reverse()




 Programación para Internet
Lic. Nancy Michelle Torres Villanueva
Arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   Los arreglos son los reyes indiscutibles de las
                                 estructuras de datos avanzadas en PHP.
                             ●   Los arreglos en PHP son extremadamente flexibles,
                                 permiten llaves numéricas de incremento automático,
                                 llaves alfanuméricas o una mezcla de ambos, y son
                                 capaces de almacenar casi cualquier valor, incluyendo
                                 otros arreglos.
                             ●   Con más de setenta funciones para la manipulación
                                 de ellos, los arreglos pueden hacer en la práctica
                                 cualquier cosa que puedas imaginar y algo más.


                                               Lic. Nancy Michelle Torres Villanueva   1
Arreglos...
PROGRAMACIÓN PARA INTERNET
                             ●   Todos los arreglos son colecciones ordenadas
                                 de elementos, llamados elementos.
                             ●   Cada elemento tiene un valor, y es identificada
                                 por una llave que es exclusiva del arreglo al
                                 que pertenece.
                             ●   Las claves pueden ser números enteros o
                                 cadenas.




                                             Lic. Nancy Michelle Torres Villanueva   2
Creación de arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   $a = array (10, 20, 30);
                             ●   $b = array (’a’ => 10, ’b’ => 20, ’cee’ => 30);
                             ●   $c = array (5 => 1, 3 => 2, 1 => 3,);
                             ●   $d = array();
                             ●   $e = array(Hola, Adios);
                             ●   $f = array(“uno”, “dos”, “tres”);




                                                 Lic. Nancy Michelle Torres Villanueva   3
Acceso a los valores
PROGRAMACIÓN PARA INTERNET
                             Los valores contenidos en un arreglo se
                             pueden recuperar y modificar usando
                             corchetes [ ].




                                         Lic. Nancy Michelle Torres Villanueva   4
PROGRAMACIÓN PARA INTERNET
                             ●   Siguiente llave numerica mas grande
                             $x[] = 10;
                             ●   Asignamos en que llave guardar
                             $x[’aa’] = 11;
                             ●   Imprimimos lo guardado en la llave 0, lo cual
                                 será 10
                             echo $x[0];


                                             Lic. Nancy Michelle Torres Villanueva   5
PROGRAMACIÓN PARA INTERNET
                             $newArray[0] = "PHP";
                             $newArray[1] = "MySQL";
                             $newArray[2] = "Apache";

                             ● ¿Qué hace?
                             $newArray[2] = "Cherokee";




                                        Lic. Nancy Michelle Torres Villanueva   6
PROGRAMACIÓN PARA INTERNET
                             $shopping =      array( );
                             $shopping[]      = "Leche";
                             $shopping[]      = "Cafe";
                             $shopping[]      = "Azucar";

                             ●   En que posiciones ha quedado cada elemento?




                                            Lic. Nancy Michelle Torres Villanueva   7
PROGRAMACIÓN PARA INTERNET
                             $array = array(
                                "primero"=>1,
                                "segundo"=>2,
                                "tercero"=>3);

                             ● Qué imprime?
                             print $array["segundo"];



                                        Lic. Nancy Michelle Torres Villanueva   8
PROGRAMACIÓN PARA INTERNET
                             $numeros = array(
                                1=>"uno",
                                "dos",
                                "tres",
                                "cuatro");

                             ●   Cuál es la llave del item “tres”??



                                              Lic. Nancy Michelle Torres Villanueva   9
PROGRAMACIÓN PARA INTERNET
                             $numeros = array(
                               1=>"uno",
                               3=>"tres",
                               5=>"cinco");
                             $numeros[]="otro";

                             ●   En que llave quedó el elemento “otro”?



                                             Lic. Nancy Michelle Torres Villanueva   10
PROGRAMACIÓN PARA INTERNET
                             $a = array (
                               ’4’ => 5,
                               ’a’ => ’b’);
                             $a[] = 44;

                             ●   En qué llave quedará el item 44?




                                             Lic. Nancy Michelle Torres Villanueva   11
PROGRAMACIÓN PARA INTERNET
                             $a = array (
                               ’A’ => “Esta es una A”,
                               ’B’ => “Esta es una B”);
                             $a[] = “Esta que será”;

                             ●   En qué llave quedará el item “Esta que será”?




                                             Lic. Nancy Michelle Torres Villanueva   12
PROGRAMACIÓN PARA INTERNET
                             $numeros = array(1=>"uno", 3=>"tres",
                             5=>"cinco");

                             $numeros[2] = "dos";
                             $numeros[4] = "cuatro";
                             $numeros[6] = "seis";

                             ●   En que orden ha quedado el arreglo?


                                             Lic. Nancy Michelle Torres Villanueva   13
PROGRAMACIÓN PARA INTERNET
                             ●   Se dice pues que las llaves son
                                 automáticamente incrementales y siempre los
                                 elementos se agregarán en el siguiente valor
                                 mayor posible y al final del arreglo.
                             ●   Tenga en cuenta que las llaves diferencian
                                 entre mayúsculas y minúsculas. Por lo tanto, la
                                 llave "A" es diferente de 'a', pero las llaves '1' y
                                 1 son los mismos.



                                              Lic. Nancy Michelle Torres Villanueva   14
Impresión de arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   PHP provee dos funciones para imprimir el
                                 valor de una variable recursivamente:
                             ●   print_r()
                             ●   var_dump()




                                              Lic. Nancy Michelle Torres Villanueva   15
print_r() y var_dump()
PROGRAMACIÓN PARA INTERNET
                             ●   var_dump() muestra además el tipo de dato
                             ●   var_dump() puede mostrar el valor de varias
                                 variables al mismo tiempo
                             ●   print_r() puede regresar el valor como una
                                 cadena




                                             Lic. Nancy Michelle Torres Villanueva   16
Arreglos multidimensionales
PROGRAMACIÓN PARA INTERNET
                             ●   A menudo los datos no pueden ser
                                 representados en un arreglo sencillo de escalar
                                 en valores enteros, cadenas, booleanos, y
                                 flotantes. Algunos datos sólo pueden estar
                                 representados cuando los arreglos tienen otros
                                 arreglos de valores.




                                             Lic. Nancy Michelle Torres Villanueva   17
PROGRAMACIÓN PARA INTERNET
                             $array = array();
                             $array[] = array(
                               ’tu’,
                               ’yo’);
                             $array[] = array(
                               ’el’,
                               ’nos’);
                             echo $array[0][1] . $array[1][0];
                             ●   Qué imprime?
                                           Lic. Nancy Michelle Torres Villanueva   18
PROGRAMACIÓN PARA INTERNET
                             $planetas = array(
                                 array("Mercurio", 0.39, 0.38),
                                 array("Venus",         0.72, 0.95),
                                 array("Tierra",          1.0,          1.0),
                                 array("Marte",           1.52, 0.53) );


                             print $planetas[2][0];


                             ●   Qué imprime?


                                            Lic. Nancy Michelle Torres Villanueva   19
PROGRAMACIÓN PARA INTERNET
                             $planetas2 = array(
                                 "Mercurio"=> array("dist"=>0.39, "dia"=>0.38),
                                 "Venus"    => array("dist"=>0.72, "dia"=>0.95),
                                 "Tierra"    => array("dist"=>1.0,                       "dia"=>1.0,
                                                     "satelites"=>array("Luna")),
                                 "Marte"     => array("dist"=>0.39, "dia"=>0.53,
                                                     "satelites"=>array("Phobos",
                             "Deimos"))
                             );


                             print $planetas2["Tierra"][satelites"][0];
                             ●    Qué imprime?
                                                 Lic. Nancy Michelle Torres Villanueva                 20
Asignando a variables
PROGRAMACIÓN PARA INTERNET                independientes
                             ●   A veces es más fácil trabajar con los valores de
                                 un arreglo mediante la asignación a las
                                 variables individuales. Si bien esto puede ser
                                 logrado mediante la extracción de elementos
                                 individuales y la asignación de cada uno de
                                 ellos a una variable diferente, PHP ofrece un
                                 acceso rápido.




                                             Lic. Nancy Michelle Torres Villanueva   21
$info = array('café', 'color', 'cafeína');
                             ●   Todas las variables
PROGRAMACIÓN PARA INTERNET   list($bebida, $color, $componente) = $info;


                             ●   Solo algunas variables
                             list($bebida, , $componente) = $info;


                             ●   Solo la tercera
                             list( , , $componente) = $info;




                                             Lic. Nancy Michelle Torres Villanueva   22
Unión de arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   Se logra con el operador +
                             ●   Los elementos con llaves repetidas solo se
                                 muestran una vez, si el contenido es distinto,
                                 esto representa perdida de información




                                             Lic. Nancy Michelle Torres Villanueva   23
PROGRAMACIÓN PARA INTERNET
                             $a   = array (1, 2, 3);
                             $b   = array (’a’ => 1, ’b’ => 2, ’c’
                             =>   3);
                             $c   = $a+$b;

                             ●   Cuál es el contenido de $c?




                                             Lic. Nancy Michelle Torres Villanueva   24
PROGRAMACIÓN PARA INTERNET
                             $a = array (1, 2, 3);
                             $b = array (’a’ => 1, 2, 3);
                             $c = $a+$b;

                             ●   Cuál es el contenido de $c?




                                             Lic. Nancy Michelle Torres Villanueva   25
PROGRAMACIÓN PARA INTERNET
                             $a = array ('a'                =>       1,
                                         'b'                =>       2,
                                         'c'                =>       3);
                             $b = array ('a'                =>       4,
                                         'b'                =>       5,
                                         'c'                =>       6);
                             $c = $a+$b;

                             ●   Cuál es el contenido de $c?
                                             Lic. Nancy Michelle Torres Villanueva   26
PROGRAMACIÓN PARA INTERNET
                             $cosas = array("silla", "mesa",
                             "maleta", "caja");
                             $edificios = array("casa", "depa",
                             "palacio");
                             $partes = array("cabeza", "pies");

                             $agregados = $partes + $edificios +
                             $cosas;

                             ●   Cuál es el contenido de $agregados?
                                            Lic. Nancy Michelle Torres Villanueva   27
Unión de arreglos sin perder
PROGRAMACIÓN PARA INTERNET                elementos
                             ●   La funcion array_merge() concatena uno o
                                 mas arreglos, agregandolos al final.
                             ●   Si los arreglos tienen llaves de cadenas
                                 iguales, entonces el ultimo valor va a
                                 sobrescribir por la vez previa en que aparecio
                                 la llave.




                                             Lic. Nancy Michelle Torres Villanueva   28
PROGRAMACIÓN PARA INTERNET
                             $array1 = array("color" => "rojo", 2,
                             4);
                             $array2 = array("a", "b", "color" =>
                             "verde", "forma" => "trapezoide", 4);
                             $result = array_merge($array1,
                             $array2);

                             ●   ( [color] => verde, [0] => 2, [1] => 4, [2] => a, [3]
                                 => b, [forma] => trapezoide, [4] => 4)


                                               Lic. Nancy Michelle Torres Villanueva   29
Comparando arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   $a = array (1, 2, 3);
                             ●   $b = array (1 => 2, 2 => 3, 0 => 1);
                             ●   $c = array (’a’ => 1, ’b’ => 2, ’c’ => 3);
                             ●


                             ●   $a == $b
                             ●   $a === $b
                             ●   $a == $c


                                               Lic. Nancy Michelle Torres Villanueva   30
Operadores de comparación de
PROGRAMACIÓN PARA INTERNET                 arreglos
                             ●   ==
                             Mismo número de elementos con las mismas
                             llaves sin importar el orden.
                             ●   ===
                             Mismo par llave/valor en el mismo orden




                                           Lic. Nancy Michelle Torres Villanueva   31
Tamaño de un arreglo
PROGRAMACIÓN PARA INTERNET
                             ●   El tamaño de un arreglo puede ser obtenido
                                 con la función count().
                             ●   Funciona con cualquier variable, no
                                 necesariamente arreglos, si se quiere asegurar
                                 de que lo este usando en un arreglo, deberá
                                 primero utilizar la función is_array()




                                             Lic. Nancy Michelle Torres Villanueva   32
PROGRAMACIÓN PARA INTERNET
                             $a =   array (1, 2, 4);
                             $b =   array();
                             $c =   10;
                             echo   count($a);
                             echo   count($b);

                             if is_array($c)
                               echo count($c);

                                          Lic. Nancy Michelle Torres Villanueva   33
Repeticiones de un elemento en
PROGRAMACIÓN PARA INTERNET                  el arreglo
                             ●   count() devuelve el total de elementos en un
                                 arreglo, pero si se desea contar de manera
                                 unica los elementos se utiliza
                                 array_count_values().
                             ●   Devuelve un arreglo asociando cada elemento
                                 con la cantidad de repeticiones.




                                             Lic. Nancy Michelle Torres Villanueva   34
$mascotas = array(
                                "Juan"=>"Perro",

PROGRAMACIÓN PARA INTERNET
                                "Ana"=>"Conejo",
                                "Pedro"=>"Gato",
                                "Maria"=>"Hamster",
                                "Luis"=>"Perro",
                                "Paco"=>"Gato");


                             $frecuencia = array_count_values($mascotas);


                             [Perro] => 2
                             [Conejo] => 1
                             [Gato] => 2
                             [Hamster] => 1
                                              Lic. Nancy Michelle Torres Villanueva   35
Determinar si un elemento en una
PROGRAMACIÓN PARA INTERNET         posición dada existe
                             $a = array (’a’ => 1, ’b’ => 2);
                             echo isset ($a[’a’]);
                             echo isset ($a[’c’]);

                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo isset ($a[’a’]);

                             ●   Qué impresiones se obtienen?

                                            Lic. Nancy Michelle Torres Villanueva   36
Determinar si una llave existe
PROGRAMACIÓN PARA INTERNET
                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo array_key_exists ('a',$a);

                             ●   Qué aparece en pantalla?




                                            Lic. Nancy Michelle Torres Villanueva   37
Buscar si un elemento existe en
PROGRAMACIÓN PARA INTERNET                  el arreglo
                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo in_array (2, $a);

                             ●   Qué aparece en pantalla?

                             ●   Se puede pasar un tercer parámetro para
                                 obligar el tipo de dato.



                                            Lic. Nancy Michelle Torres Villanueva   38
Obtener la posición de un
PROGRAMACIÓN PARA INTERNET           elemento en el arreglo
                             ●   array_search() funciona igual que in_array()
                                 solo que este devolverá la llave. Si el valor no
                                 fue encontrado devuelve false.
                             ●   Tiene un tercer parámetro opcional para obligar
                                 la concordancia del tipo de dato


                             $a = array (’a’ => NULL, ’b’ => 2);
                             echo array_search (2, $a);
                             ●   Qué aparece en pantalla?

                                              Lic. Nancy Michelle Torres Villanueva   39
Un arreglo con las llaves
PROGRAMACIÓN PARA INTERNET
                             ●   Con array_keys() se obtiene un arreglo con las
                                 llaves de otro arreglo.
                             ●   Se pueden poner parámetros opcionales y
                                 entonces solo devolverá las llaves de los
                                 elementos indicados en los parámetros.




                                             Lic. Nancy Michelle Torres Villanueva   40
$mascotas = array(
                                "Juan"=>"Perro",

PROGRAMACIÓN PARA INTERNET
                                "Ana"=>"Conejo",
                                "Pedro"=>"Gato",
                                "Maria"=>"Hamster",
                                "Luis"=>"Perro",
                                "Paco"=>"Gato");


                             $llaves = array_keys($mascotas);
                             ("Juan”, “Ana”, “Pedro”, “Maria”, “Luis”, “Paco")


                             $llaves = array_keys($mascotas,”Perro”);
                             ("Juan”, “Luis")


                                           Lic. Nancy Michelle Torres Villanueva   41
Un arreglo sin llaves
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_values() genera un nuevo
                                 arreglo solamente con los valores y olvida las
                                 llaves




                                             Lic. Nancy Michelle Torres Villanueva   42
Eliminación de elementos
PROGRAMACIÓN PARA INTERNET
                             ●   Un elemento puede ser eliminado de un
                                 arreglo, o un arreglo completo se puede
                                 eliminar llamando a unset ( ).
                             ●   Sin embargo, la eliminación de un elemento no
                                 reasigna indices.




                                             Lic. Nancy Michelle Torres Villanueva   43
PROGRAMACIÓN PARA INTERNET
                             $favoritos = array("PHP", "Ace",
                             "COBOL", "Java", "C++");

                             ● Eliminar COBOL del arreglo
                             unset($favoritos[2]);




                                           Lic. Nancy Michelle Torres Villanueva   44
Eliminando elementos repetidos
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_unique() devuelve un arreglo
                                 sin items repetidos.
                             ●   Si el arreglo tiene llaves, se quedará con la
                                 primer llave, y las siguientes ocasiones en que
                                 se repita, serán omitidas.




                                             Lic. Nancy Michelle Torres Villanueva   45
Un arreglo rellenado
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_fill() crea un arreglo rellenado
                                 con el dato indicado.
                             ●   Se debe indicar la primer llave, la cantidad de
                                 repeticiones y el dato a repetir.

                             $unidad = array_fill(2, 5, "uno");

                             Array ( [2] => uno [3] => uno [4] =>
                             uno [5] => uno [6] => uno )

                                             Lic. Nancy Michelle Torres Villanueva   46
Arreglo con una serie
PROGRAMACIÓN PARA INTERNET
                             ●   La función range() crea un arreglo con una
                                 serie dentro.
                             ●   Se debe indicar el primer valor y el último valor.
                                 Puede indicarse como parámetro opcional el
                                 tipo de incremento

                             $letras = range("a", "z", 5);

                             Array ( [0] => a [1] => f [2] => k
                             [3] => p [4] => u [5] => z )
                                              Lic. Nancy Michelle Torres Villanueva   47
Invertir un llaves por valores
PROGRAMACIÓN PARA INTERNET
                             ● La función array_flip() invierte las llaves por
                               los valores en un arreglo.
                             $a = array (’a’, ’b’, ’c’);
                             array_flip ($a);

                             ["a"]=> 0 , ["b"]=> 1 , ["c"]=> 2)




                                            Lic. Nancy Michelle Torres Villanueva   48
Invertir el orden de un arreglo
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_reverse() invierte el orden de
                                 los elementos de un arreglo.

                             $cont = array("cero", "uno", "dos",
                             "tres", "cuatro");
                             $inverso = array_reverse($cont);

                             Array ( [4] => cuatro [3] => tres [2]
                             => dos [1] => uno [0] => cero )

                                             Lic. Nancy Michelle Torres Villanueva   49
Convertir un arreglo en una
PROGRAMACIÓN PARA INTERNET                   cadena
                             ●   La función implode() regresa una cadena
                                 creada por la union de cada uno de los
                                 elementos en el arreglo, insertando una cadena
                                 de unión entre cada elemento.
                             ● join() es un alias de implode() y funciona
                               exactamente igual
                             $animales = array("canguro", "leon",
                             "jirafa”);
                             implode(", ", $animales);


                                             Lic. Nancy Michelle Torres Villanueva   50
Convertir una cadena en un
PROGRAMACIÓN PARA INTERNET                  arreglo
                             ● La función explode() regresa un arreglo de
                               cadenas creadas por la ruptura de una cierta
                               cadena en cada ocurrencia despues de un
                               separador dado
                             $palabras = explode(" ", "Ahora es el
                             momento");
                             print_r($palabras);

                             Array ( [0] => Ahora [1] => es [2] => el [3] =>
                             momento )
                                            Lic. Nancy Michelle Torres Villanueva   51
Iteraciones en un arreglo
PROGRAMACIÓN PARA INTERNET
                             ●   Existen varias funciones para poder trabajar co
                                 las iteraciones dentro de un arreglo
                                 ●   reset() Reinicia el puntero del arreglo para poder
                                     recorrerlo.
                                 ●   prev() Recorre el puntero a la posición anterior
                                 ●   next() Recorre el puntero a la siguiente posición
                                 ●   current() Entrega el valor guardado en la posición
                                     actual
                                 ●   key() Devuelve la llave de la posición actual
                                 ●   end() Mueve el puntero a la posición final

                                                Lic. Nancy Michelle Torres Villanueva   52
$array = array(’foo’ => ’bar’, ’baz’,
                             ’bat’ => 2);
PROGRAMACIÓN PARA INTERNET
                             function displayArray($array) {
                               reset($array);
                               while (key($array) !== null) {
                                 echo key($array).": ".current($array);
                                 next($array);
                               }
                             }




                                         Lic. Nancy Michelle Torres Villanueva   53
foreach()
PROGRAMACIÓN PARA INTERNET
                             ●   Es una manera sencilla de recorrer una arreglo.

                             $array = array(’foo’, ’bar’, ’baz’);
                             foreach ($array as $key => $value) {
                                echo "$key: $value";
                             }




                                             Lic. Nancy Michelle Torres Villanueva   54
Iteraciones con funciones
PROGRAMACIÓN PARA INTERNET
                             ●   array_walk()
                             Aplica una función definida por el usuario a cada
                             miembro de un arreglo.

                             ●   array_walk_recursive()
                             Aplica una función definida por el usuario
                             recursivamente a cada miembro de un arreglo.



                                                Lic. Nancy Michelle Torres Villanueva   55
$frutas = array("d" => "limon", "a"
                             => "naranja", "b" => "platano", "c"
                             => "manzana");
PROGRAMACIÓN PARA INTERNET

                             function test_print($valor, $llave)
                             {
                                 echo "$llave. $valor<br />n";
                             }
                             array_walk($frutas, 'test_print');




                                        Lic. Nancy Michelle Torres Villanueva   56
$frutas = array("d" => "limon", "a"
                             => "naranja", "b" => "platano", "c"
                             => "manzana");
PROGRAMACIÓN PARA INTERNET

                             function test_alter(&$valor, $llave,
                             $prefix)
                             {
                                 $valor = "$prefix: $valor";
                             }
                             array_walk($frutas,
                             'test_print','Fruta: ');



                                        Lic. Nancy Michelle Torres Villanueva   57
$dulce = array('a' => 'manzana', 'b'
                             => 'platano');
PROGRAMACIÓN PARA INTERNET   $frutas = array('dulce' => $dulce,
                             'acido' => 'limon');

                             function test_print($valor, $llave)
                             {
                                 echo "$llave tiene $valorn";
                             }

                             array_walk_recursive($frutas,
                             'test_print');

                                        Lic. Nancy Michelle Torres Villanueva   58
Ordenar un arreglo
PROGRAMACIÓN PARA INTERNET
                             ●   Los elementos de un arreglo se ordenan
                                 ascedente o descendentemente, sin embargo,
                                 las llaves se perderan en el proceso.
                                 ●   sort() Ascendentemente
                                 ●   rsort() Descendentemente
                             ●   Se tiene un segundo parámetro opcional para
                                 indicar si el ordenamiento será alfabético o
                                 numérico



                                               Lic. Nancy Michelle Torres Villanueva   59
Banderas de ordenamiento
PROGRAMACIÓN PARA INTERNET
                             ●   SORT_REGULAR – Compara items
                                 normalmente (No cambia los tipos)
                             ●   SORT_NUMERIC – Compara items
                                 numéricamente
                             ●   SORT_STRING – Compara items como
                                 cadenas
                             ●   SORT_LOCALE_STRING – Compara items
                                 como cadenas basado en la configuración local


                                            Lic. Nancy Michelle Torres Villanueva   60
PROGRAMACIÓN PARA INTERNET
                             $numbers = array(24, 19, 3, 16, 56,
                             8, 171);
                             sort($numbers);
                             ●   ( [0] => 3, [1] => 8, [2] => 16, [3] => 19, [4] =>
                                 24, [5] => 56, [6] => 171 )


                             rsort($numbers);
                             ●   ( [0] => 171, [1] => 56, [2] => 24, [3] => 19, [4]
                                 => 16, [5] => 8, [6] => 3 )

                                              Lic. Nancy Michelle Torres Villanueva   61
PROGRAMACIÓN PARA INTERNET
                             $arr = array ("1", 10, "Maria",
                             "maria", "Memo", 1, 5, 9);
                             sort($arr);

                             ●   En que orden quedará este arreglo?




                                            Lic. Nancy Michelle Torres Villanueva   62
Ordenar un arreglo manteniendo
PROGRAMACIÓN PARA INTERNET              las llaves
                             ●   Para que al ordenar las llaves se mantengan,
                                 se utilizan las funciones:
                                 ●   asort() Ascendentemente
                                 ●   arsort() Descendentemente




                                               Lic. Nancy Michelle Torres Villanueva   63
Ordenar un arreglo por sus llaves
PROGRAMACIÓN PARA INTERNET
                             ●   Hemos visto como ordenar un arreglo en base
                                 a sus elementos, pero también podemos
                                 ordenarlo en base a sus llaves.
                                 ●   ksort() Ascendentemente
                                 ●   krsort() Descendentemente




                                               Lic. Nancy Michelle Torres Villanueva   64
Ordenar un arreglo utilizando una
PROGRAMACIÓN PARA INTERNET    función definida por el usuario
                             ●   Si deseas ordenar un arreglo de alguna otra
                                 manera que no sea numérica o
                                 alfabéticamente, puedes crear tu propia función
                                 y luego mandar a ordenar con esa función.
                                 ●   usort( ) Ordena el arreglo basado en el valor de
                                     cada elemento aplicando una nueva llave
                                 ●   uasort( ) Mantiene el par llave/valor
                                 ●   uksort( ) Reordena los elementos basado en la
                                     llave de cada elemento



                                                Lic. Nancy Michelle Torres Villanueva   65
function cmp_length($a, $b)
                             {
PROGRAMACIÓN PARA INTERNET       if (strlen($a) < strlen($b))
                                     return -1;
                                 if (strlen($a) > strlen($b))
                                     return 1;

                                 //Si el tamaño es igual
                                 return 0;
                             }


                                        Lic. Nancy Michelle Torres Villanueva   66
PROGRAMACIÓN PARA INTERNET
                             $animals = array("cow", "ox",
                             "hippopotamus", "platypus");

                             usort($animals, "cmp_length");



                             ●   ( [0] => ox, [1] => cow, [2] => platypus, [3] =>
                                 hippopotamus )


                                              Lic. Nancy Michelle Torres Villanueva   67
Desordenando un arreglo
PROGRAMACIÓN PARA INTERNET
                             ●   La función shuffle() desacomoda un arreglo de
                                 manera random. Las llaves se pierden




                                            Lic. Nancy Michelle Torres Villanueva   68
Obtener un elemento random
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_rand() toma uno o mas
                                 elementos random del arreglo y devuelve la
                                 llave de estos.




                                             Lic. Nancy Michelle Torres Villanueva   69
Arreglos como pilas y colas
PROGRAMACIÓN PARA INTERNET
                             ●   PHP ofrece funciones para las actividades de
                                 push y pull en las pilas y para shift y unshift en
                                 las colas.
                                 ●   array_push
                                 ●   array_pop
                                 ●   array_shift
                                 ●   array_unshift




                                                   Lic. Nancy Michelle Torres Villanueva   70
PROGRAMACIÓN PARA INTERNET
                             $stack = array();
                             array_push($stack, ’bar’, ’baz’);
                             $last_in = array_pop($stack);




                             $queue = array(’qux’, ’bar’, ’baz’);
                             $first_element = array_shift($queue);
                             array_unshift($queue, ’foo’);
                                        Lic. Nancy Michelle Torres Villanueva   71
Diferencia entre dos arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_diff() compara dos arreglos y
                                 devuelve la diferencia.
                             ●   Devuelve un arreglo con todas las entradas del
                                 arreglo1 que no estan en los demás arreglos.
                             ●   No toma en cuenta las llaves, de modo que si
                                 se desea tomar en cuenta las llaves, se utiliza
                                 array_diff_assoc()




                                             Lic. Nancy Michelle Torres Villanueva   72
Diferencia entre dos arreglos en
PROGRAMACIÓN PARA INTERNET              base a sus llaves
                             ●   Para buscar las diferencias entre dos arreglos
                                 tomando en cuenta las llaves se utiliza la
                                 función array_diff_key()
                             ●   En ambas funciones se puede utilizar una
                                 función definida por el usuario y las funciones a
                                 utilizar son array_diff_uassoc() y
                                 array_diff_ukey()




                                             Lic. Nancy Michelle Torres Villanueva   73
Intersección de dos arreglos
PROGRAMACIÓN PARA INTERNET
                             ●   La función array_intersect() devuelve todos
                                 los elementos del arreglo1 que existen en los
                                 demás arreglos.
                             ●   Si se desea revisar también las llaves se utiliza
                                 la función array_intersect_assoc().
                             ●   array_intersect_key() se utiliza para validar
                                 las llaves.
                             ●   array_intersect_ukey() y
                                 array_intersect_uassoc() para validar con una
                                 función
                             ●                Lic. Nancy Michelle Torres Villanueva   74
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP
Arreglos en PHP

Mais conteúdo relacionado

Mais procurados

Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning treeSTEFFY D
 
Quicksort Presentation
Quicksort PresentationQuicksort Presentation
Quicksort Presentationirdginfo
 
Selection sort
Selection sortSelection sort
Selection sortstella D
 
sorting and searching.pptx
sorting and searching.pptxsorting and searching.pptx
sorting and searching.pptxParagAhir1
 
Circular linked list
Circular linked listCircular linked list
Circular linked listdchuynh
 
linked list in data structure
linked list in data structure linked list in data structure
linked list in data structure shameen khan
 
Red black tree
Red black treeRed black tree
Red black treeRajendran
 
Backtracking Algorithm.ppt
Backtracking Algorithm.pptBacktracking Algorithm.ppt
Backtracking Algorithm.pptSalmIbrahimIlyas
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...Umesh Kumar
 
Advance data structure & algorithm
Advance data structure & algorithmAdvance data structure & algorithm
Advance data structure & algorithmK Hari Shankar
 

Mais procurados (20)

MySQL on ZFS
MySQL on ZFSMySQL on ZFS
MySQL on ZFS
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Quicksort Presentation
Quicksort PresentationQuicksort Presentation
Quicksort Presentation
 
Selection sort
Selection sortSelection sort
Selection sort
 
sorting and searching.pptx
sorting and searching.pptxsorting and searching.pptx
sorting and searching.pptx
 
Bfs dfs
Bfs dfsBfs dfs
Bfs dfs
 
Abstract Data Types
Abstract Data TypesAbstract Data Types
Abstract Data Types
 
Topological sort
Topological sortTopological sort
Topological sort
 
Normalization
NormalizationNormalization
Normalization
 
Time complexity
Time complexityTime complexity
Time complexity
 
Quick sort
Quick sortQuick sort
Quick sort
 
Circular linked list
Circular linked listCircular linked list
Circular linked list
 
Hamiltonian path
Hamiltonian pathHamiltonian path
Hamiltonian path
 
The Floyd–Warshall algorithm
The Floyd–Warshall algorithmThe Floyd–Warshall algorithm
The Floyd–Warshall algorithm
 
linked list in data structure
linked list in data structure linked list in data structure
linked list in data structure
 
Red black tree
Red black treeRed black tree
Red black tree
 
Big O Notation
Big O NotationBig O Notation
Big O Notation
 
Backtracking Algorithm.ppt
Backtracking Algorithm.pptBacktracking Algorithm.ppt
Backtracking Algorithm.ppt
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
 
Advance data structure & algorithm
Advance data structure & algorithmAdvance data structure & algorithm
Advance data structure & algorithm
 

Destaque

Diseno de-software-en-arquitectura-cliente-servidor
Diseno de-software-en-arquitectura-cliente-servidorDiseno de-software-en-arquitectura-cliente-servidor
Diseno de-software-en-arquitectura-cliente-servidorOskr Gamez
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pilajefer
 
Condicion Si ANIDADA
Condicion Si ANIDADACondicion Si ANIDADA
Condicion Si ANIDADACami Ochoa
 
Reglamento estudiantil .Carlos barros catedra
Reglamento estudiantil .Carlos barros catedraReglamento estudiantil .Carlos barros catedra
Reglamento estudiantil .Carlos barros catedraCAUGUSTOBARROS
 
Trabajo william morris. veronica sanchez riquelme
Trabajo william morris. veronica sanchez riquelmeTrabajo william morris. veronica sanchez riquelme
Trabajo william morris. veronica sanchez riquelmeOnempresas
 
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.MANDEL
 
Ideation, business models; and how and where to start
Ideation, business models; and how and where to startIdeation, business models; and how and where to start
Ideation, business models; and how and where to startSaberi Marais
 
Clase Mano Anatomia Grupo Atlas
Clase Mano Anatomia Grupo AtlasClase Mano Anatomia Grupo Atlas
Clase Mano Anatomia Grupo AtlasGrupo Atlas
 
Apostila com atividades de Libras
Apostila com atividades de LibrasApostila com atividades de Libras
Apostila com atividades de LibrasIsa ...
 
Anatomia Grupo Atlas Mano Miembro Superior
Anatomia Grupo Atlas Mano Miembro SuperiorAnatomia Grupo Atlas Mano Miembro Superior
Anatomia Grupo Atlas Mano Miembro SuperiorGrupo Atlas
 
Suspension bridge
Suspension bridgeSuspension bridge
Suspension bridgemominzaki
 
Estrategias didácticas para la enseñanza
Estrategias didácticas para la enseñanzaEstrategias didácticas para la enseñanza
Estrategias didácticas para la enseñanzaOsvaldo Toscano ILTEC
 
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)Grupo Atlas
 
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo Minutti
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo MinuttiDILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo Minutti
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo MinuttiMarcelo Minutti
 

Destaque (20)

Diseno de-software-en-arquitectura-cliente-servidor
Diseno de-software-en-arquitectura-cliente-servidorDiseno de-software-en-arquitectura-cliente-servidor
Diseno de-software-en-arquitectura-cliente-servidor
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Condicion Si ANIDADA
Condicion Si ANIDADACondicion Si ANIDADA
Condicion Si ANIDADA
 
Reglamento estudiantil .Carlos barros catedra
Reglamento estudiantil .Carlos barros catedraReglamento estudiantil .Carlos barros catedra
Reglamento estudiantil .Carlos barros catedra
 
Wiki icagra
Wiki icagraWiki icagra
Wiki icagra
 
Practica 2 sociologia
Practica 2 sociologiaPractica 2 sociologia
Practica 2 sociologia
 
21
2121
21
 
Benchmarking antecedentes
Benchmarking antecedentesBenchmarking antecedentes
Benchmarking antecedentes
 
Trabajo william morris. veronica sanchez riquelme
Trabajo william morris. veronica sanchez riquelmeTrabajo william morris. veronica sanchez riquelme
Trabajo william morris. veronica sanchez riquelme
 
飢餓
飢餓飢餓
飢餓
 
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.
SWEDISHNESS SELLS: Brand Perception in Germany and Sweden.
 
Ideation, business models; and how and where to start
Ideation, business models; and how and where to startIdeation, business models; and how and where to start
Ideation, business models; and how and where to start
 
Cadena epidemiológica trabajo
Cadena epidemiológica trabajoCadena epidemiológica trabajo
Cadena epidemiológica trabajo
 
Clase Mano Anatomia Grupo Atlas
Clase Mano Anatomia Grupo AtlasClase Mano Anatomia Grupo Atlas
Clase Mano Anatomia Grupo Atlas
 
Apostila com atividades de Libras
Apostila com atividades de LibrasApostila com atividades de Libras
Apostila com atividades de Libras
 
Anatomia Grupo Atlas Mano Miembro Superior
Anatomia Grupo Atlas Mano Miembro SuperiorAnatomia Grupo Atlas Mano Miembro Superior
Anatomia Grupo Atlas Mano Miembro Superior
 
Suspension bridge
Suspension bridgeSuspension bridge
Suspension bridge
 
Estrategias didácticas para la enseñanza
Estrategias didácticas para la enseñanzaEstrategias didácticas para la enseñanza
Estrategias didácticas para la enseñanza
 
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)
ARTERIAS DEL MIEMBRO SUPERIOR (RESUMEN DEL GRUPO ATLAS)
 
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo Minutti
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo MinuttiDILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo Minutti
DILEMA DO ENGAJAMENTO E A DINÂMICA DA ATRATIVIDADE DIGITAL - Marcelo Minutti
 

Mais de Michelle Torres

Prototipado rápido para web y mobile
Prototipado rápido para web y mobilePrototipado rápido para web y mobile
Prototipado rápido para web y mobileMichelle Torres
 
Uso de Puerto paralelo en C
Uso de Puerto paralelo en CUso de Puerto paralelo en C
Uso de Puerto paralelo en CMichelle Torres
 
Material de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMaterial de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMichelle Torres
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Michelle Torres
 
Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Michelle Torres
 
Modos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaModos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaMichelle Torres
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAMichelle Torres
 
Recordando Java desde Cero
Recordando Java desde CeroRecordando Java desde Cero
Recordando Java desde CeroMichelle Torres
 
Rubrica (primera entrega)
Rubrica (primera entrega)Rubrica (primera entrega)
Rubrica (primera entrega)Michelle Torres
 
Introducción a la programación en ambientes web
Introducción a la programación en ambientes webIntroducción a la programación en ambientes web
Introducción a la programación en ambientes webMichelle Torres
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantesMichelle Torres
 

Mais de Michelle Torres (16)

Prototipado rápido para web y mobile
Prototipado rápido para web y mobilePrototipado rápido para web y mobile
Prototipado rápido para web y mobile
 
Uso de Puerto paralelo en C
Uso de Puerto paralelo en CUso de Puerto paralelo en C
Uso de Puerto paralelo en C
 
Material de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMaterial de administración y auditoría de la función informática
Material de administración y auditoría de la función informática
 
Cpu12 Reference Manual
Cpu12 Reference ManualCpu12 Reference Manual
Cpu12 Reference Manual
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2
 
Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1
 
Modos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaModos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorola
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVA
 
Recordando Java desde Cero
Recordando Java desde CeroRecordando Java desde Cero
Recordando Java desde Cero
 
Rubrica (primera entrega)
Rubrica (primera entrega)Rubrica (primera entrega)
Rubrica (primera entrega)
 
Cv resumido conaic
Cv resumido conaicCv resumido conaic
Cv resumido conaic
 
Introducción a la programación en ambientes web
Introducción a la programación en ambientes webIntroducción a la programación en ambientes web
Introducción a la programación en ambientes web
 
Servidores web
Servidores webServidores web
Servidores web
 
XHTML y CSS
XHTML y CSSXHTML y CSS
XHTML y CSS
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (13)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Arreglos en PHP

  • 1. Arreglos PROGRAMACIÓN PARA INTERNET ● Los arreglos son los reyes indiscutibles de las estructuras de datos avanzadas en PHP. ● Los arreglos en PHP son extremadamente flexibles, permiten llaves numéricas de incremento automático, llaves alfanuméricas o una mezcla de ambos, y son capaces de almacenar casi cualquier valor, incluyendo otros arreglos. ● Con más de setenta funciones para la manipulación de ellos, los arreglos pueden hacer en la práctica cualquier cosa que puedas imaginar y algo más. Lic. Nancy Michelle Torres Villanueva 1
  • 2. Arreglos... PROGRAMACIÓN PARA INTERNET ● Todos los arreglos son colecciones ordenadas de elementos, llamados elementos. ● Cada elemento tiene un valor, y es identificada por una llave que es exclusiva del arreglo al que pertenece. ● Las claves pueden ser números enteros o cadenas. Lic. Nancy Michelle Torres Villanueva 2
  • 3. Creación de arreglos PROGRAMACIÓN PARA INTERNET ● $a = array (10, 20, 30); ● $b = array (’a’ => 10, ’b’ => 20, ’cee’ => 30); ● $c = array (5 => 1, 3 => 2, 1 => 3,); ● $d = array(); ● $e = array(Hola, Adios); ● $f = array(“uno”, “dos”, “tres”); Lic. Nancy Michelle Torres Villanueva 3
  • 4. Acceso a los valores PROGRAMACIÓN PARA INTERNET Los valores contenidos en un arreglo se pueden recuperar y modificar usando corchetes [ ]. Lic. Nancy Michelle Torres Villanueva 4
  • 5. PROGRAMACIÓN PARA INTERNET ● Siguiente llave numerica mas grande $x[] = 10; ● Asignamos en que llave guardar $x[’aa’] = 11; ● Imprimimos lo guardado en la llave 0, lo cual será 10 echo $x[0]; Lic. Nancy Michelle Torres Villanueva 5
  • 6. PROGRAMACIÓN PARA INTERNET $newArray[0] = "PHP"; $newArray[1] = "MySQL"; $newArray[2] = "Apache"; ● ¿Qué hace? $newArray[2] = "Cherokee"; Lic. Nancy Michelle Torres Villanueva 6
  • 7. PROGRAMACIÓN PARA INTERNET $shopping = array( ); $shopping[] = "Leche"; $shopping[] = "Cafe"; $shopping[] = "Azucar"; ● En que posiciones ha quedado cada elemento? Lic. Nancy Michelle Torres Villanueva 7
  • 8. PROGRAMACIÓN PARA INTERNET $array = array( "primero"=>1, "segundo"=>2, "tercero"=>3); ● Qué imprime? print $array["segundo"]; Lic. Nancy Michelle Torres Villanueva 8
  • 9. PROGRAMACIÓN PARA INTERNET $numeros = array( 1=>"uno", "dos", "tres", "cuatro"); ● Cuál es la llave del item “tres”?? Lic. Nancy Michelle Torres Villanueva 9
  • 10. PROGRAMACIÓN PARA INTERNET $numeros = array( 1=>"uno", 3=>"tres", 5=>"cinco"); $numeros[]="otro"; ● En que llave quedó el elemento “otro”? Lic. Nancy Michelle Torres Villanueva 10
  • 11. PROGRAMACIÓN PARA INTERNET $a = array ( ’4’ => 5, ’a’ => ’b’); $a[] = 44; ● En qué llave quedará el item 44? Lic. Nancy Michelle Torres Villanueva 11
  • 12. PROGRAMACIÓN PARA INTERNET $a = array ( ’A’ => “Esta es una A”, ’B’ => “Esta es una B”); $a[] = “Esta que será”; ● En qué llave quedará el item “Esta que será”? Lic. Nancy Michelle Torres Villanueva 12
  • 13. PROGRAMACIÓN PARA INTERNET $numeros = array(1=>"uno", 3=>"tres", 5=>"cinco"); $numeros[2] = "dos"; $numeros[4] = "cuatro"; $numeros[6] = "seis"; ● En que orden ha quedado el arreglo? Lic. Nancy Michelle Torres Villanueva 13
  • 14. PROGRAMACIÓN PARA INTERNET ● Se dice pues que las llaves son automáticamente incrementales y siempre los elementos se agregarán en el siguiente valor mayor posible y al final del arreglo. ● Tenga en cuenta que las llaves diferencian entre mayúsculas y minúsculas. Por lo tanto, la llave "A" es diferente de 'a', pero las llaves '1' y 1 son los mismos. Lic. Nancy Michelle Torres Villanueva 14
  • 15. Impresión de arreglos PROGRAMACIÓN PARA INTERNET ● PHP provee dos funciones para imprimir el valor de una variable recursivamente: ● print_r() ● var_dump() Lic. Nancy Michelle Torres Villanueva 15
  • 16. print_r() y var_dump() PROGRAMACIÓN PARA INTERNET ● var_dump() muestra además el tipo de dato ● var_dump() puede mostrar el valor de varias variables al mismo tiempo ● print_r() puede regresar el valor como una cadena Lic. Nancy Michelle Torres Villanueva 16
  • 17. Arreglos multidimensionales PROGRAMACIÓN PARA INTERNET ● A menudo los datos no pueden ser representados en un arreglo sencillo de escalar en valores enteros, cadenas, booleanos, y flotantes. Algunos datos sólo pueden estar representados cuando los arreglos tienen otros arreglos de valores. Lic. Nancy Michelle Torres Villanueva 17
  • 18. PROGRAMACIÓN PARA INTERNET $array = array(); $array[] = array( ’tu’, ’yo’); $array[] = array( ’el’, ’nos’); echo $array[0][1] . $array[1][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 18
  • 19. PROGRAMACIÓN PARA INTERNET $planetas = array( array("Mercurio", 0.39, 0.38), array("Venus", 0.72, 0.95), array("Tierra", 1.0, 1.0), array("Marte", 1.52, 0.53) ); print $planetas[2][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 19
  • 20. PROGRAMACIÓN PARA INTERNET $planetas2 = array( "Mercurio"=> array("dist"=>0.39, "dia"=>0.38), "Venus" => array("dist"=>0.72, "dia"=>0.95), "Tierra" => array("dist"=>1.0, "dia"=>1.0, "satelites"=>array("Luna")), "Marte" => array("dist"=>0.39, "dia"=>0.53, "satelites"=>array("Phobos", "Deimos")) ); print $planetas2["Tierra"][satelites"][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 20
  • 21. Asignando a variables independientes PROGRAMACIÓN PARA INTERNET ● A veces es más fácil trabajar con los valores de un arreglo mediante la asignación a las variables individuales. Si bien esto puede ser logrado mediante la extracción de elementos individuales y la asignación de cada uno de ellos a una variable diferente, PHP ofrece un acceso rápido. Lic. Nancy Michelle Torres Villanueva 21
  • 22. $info = array('café', 'color', 'cafeína'); ● Todas las variables PROGRAMACIÓN PARA INTERNET list($bebida, $color, $componente) = $info; ● Solo algunas variables list($bebida, , $componente) = $info; ● Solo la tercera list( , , $componente) = $info; Lic. Nancy Michelle Torres Villanueva 22
  • 23. Unión de arreglos PROGRAMACIÓN PARA INTERNET ● Se logra con el operador + ● Los elementos con llaves repetidas solo se muestran una vez, si el contenido es distinto, esto representa perdida de información Lic. Nancy Michelle Torres Villanueva 23
  • 24. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 3); $b = array (’a’ => 1, ’b’ => 2, ’c’ => 3); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 24
  • 25. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 3); $b = array (’a’ => 1, 2, 3); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 25
  • 26. PROGRAMACIÓN PARA INTERNET $a = array ('a' => 1, 'b' => 2, 'c' => 3); $b = array ('a' => 4, 'b' => 5, 'c' => 6); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 26
  • 27. PROGRAMACIÓN PARA INTERNET $cosas = array("silla", "mesa", "maleta", "caja"); $edificios = array("casa", "depa", "palacio"); $partes = array("cabeza", "pies"); $agregados = $partes + $edificios + $cosas; ● Cuál es el contenido de $agregados? Lic. Nancy Michelle Torres Villanueva 27
  • 28. Unión de arreglos sin perder elementos PROGRAMACIÓN PARA INTERNET ● La funcion array_merge() concatena uno o mas arreglos, agregandolos al final. ● Si los arreglos tienen llaves de cadenas iguales, entonces el ultimo valor va a sobrescribir por la vez previa en que aparecio la llave. Lic. Nancy Michelle Torres Villanueva 28
  • 29. PROGRAMACIÓN PARA INTERNET $array1 = array("color" => "rojo", 2, 4); $array2 = array("a", "b", "color" => "verde", "forma" => "trapezoide", 4); $result = array_merge($array1, $array2); ● ( [color] => verde, [0] => 2, [1] => 4, [2] => a, [3] => b, [forma] => trapezoide, [4] => 4) Lic. Nancy Michelle Torres Villanueva 29
  • 30. Comparando arreglos PROGRAMACIÓN PARA INTERNET ● $a = array (1, 2, 3); ● $b = array (1 => 2, 2 => 3, 0 => 1); ● $c = array (’a’ => 1, ’b’ => 2, ’c’ => 3); ● ● $a == $b ● $a === $b ● $a == $c Lic. Nancy Michelle Torres Villanueva 30
  • 31. Operadores de comparación de arreglos PROGRAMACIÓN PARA INTERNET ● == Mismo número de elementos con las mismas llaves sin importar el orden. ● === Mismo par llave/valor en el mismo orden Lic. Nancy Michelle Torres Villanueva 31
  • 32. Tamaño de un arreglo PROGRAMACIÓN PARA INTERNET ● El tamaño de un arreglo puede ser obtenido con la función count(). ● Funciona con cualquier variable, no necesariamente arreglos, si se quiere asegurar de que lo este usando en un arreglo, deberá primero utilizar la función is_array() Lic. Nancy Michelle Torres Villanueva 32
  • 33. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 4); $b = array(); $c = 10; echo count($a); echo count($b); if is_array($c) echo count($c); Lic. Nancy Michelle Torres Villanueva 33
  • 34. Repeticiones de un elemento en el arreglo PROGRAMACIÓN PARA INTERNET ● count() devuelve el total de elementos en un arreglo, pero si se desea contar de manera unica los elementos se utiliza array_count_values(). ● Devuelve un arreglo asociando cada elemento con la cantidad de repeticiones. Lic. Nancy Michelle Torres Villanueva 34
  • 35. $mascotas = array( "Juan"=>"Perro", PROGRAMACIÓN PARA INTERNET "Ana"=>"Conejo", "Pedro"=>"Gato", "Maria"=>"Hamster", "Luis"=>"Perro", "Paco"=>"Gato"); $frecuencia = array_count_values($mascotas); [Perro] => 2 [Conejo] => 1 [Gato] => 2 [Hamster] => 1 Lic. Nancy Michelle Torres Villanueva 35
  • 36. Determinar si un elemento en una posición dada existe PROGRAMACIÓN PARA INTERNET $a = array (’a’ => 1, ’b’ => 2); echo isset ($a[’a’]); echo isset ($a[’c’]); $a = array (’a’ => NULL, ’b’ => 2); echo isset ($a[’a’]); ● Qué impresiones se obtienen? Lic. Nancy Michelle Torres Villanueva 36
  • 37. Determinar si una llave existe PROGRAMACIÓN PARA INTERNET $a = array (’a’ => NULL, ’b’ => 2); echo array_key_exists ('a',$a); ● Qué aparece en pantalla? Lic. Nancy Michelle Torres Villanueva 37
  • 38. Buscar si un elemento existe en el arreglo PROGRAMACIÓN PARA INTERNET $a = array (’a’ => NULL, ’b’ => 2); echo in_array (2, $a); ● Qué aparece en pantalla? ● Se puede pasar un tercer parámetro para obligar el tipo de dato. Lic. Nancy Michelle Torres Villanueva 38
  • 39. Obtener la posición de un elemento en el arreglo PROGRAMACIÓN PARA INTERNET ● array_search() funciona igual que in_array() solo que este devolverá la llave. Si el valor no fue encontrado devuelve false. ● Tiene un tercer parámetro opcional para obligar la concordancia del tipo de dato $a = array (’a’ => NULL, ’b’ => 2); echo array_search (2, $a); ● Qué aparece en pantalla? Lic. Nancy Michelle Torres Villanueva 39
  • 40. Un arreglo con las llaves PROGRAMACIÓN PARA INTERNET ● Con array_keys() se obtiene un arreglo con las llaves de otro arreglo. ● Se pueden poner parámetros opcionales y entonces solo devolverá las llaves de los elementos indicados en los parámetros. Lic. Nancy Michelle Torres Villanueva 40
  • 41. $mascotas = array( "Juan"=>"Perro", PROGRAMACIÓN PARA INTERNET "Ana"=>"Conejo", "Pedro"=>"Gato", "Maria"=>"Hamster", "Luis"=>"Perro", "Paco"=>"Gato"); $llaves = array_keys($mascotas); ("Juan”, “Ana”, “Pedro”, “Maria”, “Luis”, “Paco") $llaves = array_keys($mascotas,”Perro”); ("Juan”, “Luis") Lic. Nancy Michelle Torres Villanueva 41
  • 42. Un arreglo sin llaves PROGRAMACIÓN PARA INTERNET ● La función array_values() genera un nuevo arreglo solamente con los valores y olvida las llaves Lic. Nancy Michelle Torres Villanueva 42
  • 43. Eliminación de elementos PROGRAMACIÓN PARA INTERNET ● Un elemento puede ser eliminado de un arreglo, o un arreglo completo se puede eliminar llamando a unset ( ). ● Sin embargo, la eliminación de un elemento no reasigna indices. Lic. Nancy Michelle Torres Villanueva 43
  • 44. PROGRAMACIÓN PARA INTERNET $favoritos = array("PHP", "Ace", "COBOL", "Java", "C++"); ● Eliminar COBOL del arreglo unset($favoritos[2]); Lic. Nancy Michelle Torres Villanueva 44
  • 45. Eliminando elementos repetidos PROGRAMACIÓN PARA INTERNET ● La función array_unique() devuelve un arreglo sin items repetidos. ● Si el arreglo tiene llaves, se quedará con la primer llave, y las siguientes ocasiones en que se repita, serán omitidas. Lic. Nancy Michelle Torres Villanueva 45
  • 46. Un arreglo rellenado PROGRAMACIÓN PARA INTERNET ● La función array_fill() crea un arreglo rellenado con el dato indicado. ● Se debe indicar la primer llave, la cantidad de repeticiones y el dato a repetir. $unidad = array_fill(2, 5, "uno"); Array ( [2] => uno [3] => uno [4] => uno [5] => uno [6] => uno ) Lic. Nancy Michelle Torres Villanueva 46
  • 47. Arreglo con una serie PROGRAMACIÓN PARA INTERNET ● La función range() crea un arreglo con una serie dentro. ● Se debe indicar el primer valor y el último valor. Puede indicarse como parámetro opcional el tipo de incremento $letras = range("a", "z", 5); Array ( [0] => a [1] => f [2] => k [3] => p [4] => u [5] => z ) Lic. Nancy Michelle Torres Villanueva 47
  • 48. Invertir un llaves por valores PROGRAMACIÓN PARA INTERNET ● La función array_flip() invierte las llaves por los valores en un arreglo. $a = array (’a’, ’b’, ’c’); array_flip ($a); ["a"]=> 0 , ["b"]=> 1 , ["c"]=> 2) Lic. Nancy Michelle Torres Villanueva 48
  • 49. Invertir el orden de un arreglo PROGRAMACIÓN PARA INTERNET ● La función array_reverse() invierte el orden de los elementos de un arreglo. $cont = array("cero", "uno", "dos", "tres", "cuatro"); $inverso = array_reverse($cont); Array ( [4] => cuatro [3] => tres [2] => dos [1] => uno [0] => cero ) Lic. Nancy Michelle Torres Villanueva 49
  • 50. Convertir un arreglo en una cadena PROGRAMACIÓN PARA INTERNET ● La función implode() regresa una cadena creada por la union de cada uno de los elementos en el arreglo, insertando una cadena de unión entre cada elemento. ● join() es un alias de implode() y funciona exactamente igual $animales = array("canguro", "leon", "jirafa”); implode(", ", $animales); Lic. Nancy Michelle Torres Villanueva 50
  • 51. Convertir una cadena en un arreglo PROGRAMACIÓN PARA INTERNET ● La función explode() regresa un arreglo de cadenas creadas por la ruptura de una cierta cadena en cada ocurrencia despues de un separador dado $palabras = explode(" ", "Ahora es el momento"); print_r($palabras); Array ( [0] => Ahora [1] => es [2] => el [3] => momento ) Lic. Nancy Michelle Torres Villanueva 51
  • 52. Iteraciones en un arreglo PROGRAMACIÓN PARA INTERNET ● Existen varias funciones para poder trabajar co las iteraciones dentro de un arreglo ● reset() Reinicia el puntero del arreglo para poder recorrerlo. ● prev() Recorre el puntero a la posición anterior ● next() Recorre el puntero a la siguiente posición ● current() Entrega el valor guardado en la posición actual ● key() Devuelve la llave de la posición actual ● end() Mueve el puntero a la posición final Lic. Nancy Michelle Torres Villanueva 52
  • 53. $array = array(’foo’ => ’bar’, ’baz’, ’bat’ => 2); PROGRAMACIÓN PARA INTERNET function displayArray($array) { reset($array); while (key($array) !== null) { echo key($array).": ".current($array); next($array); } } Lic. Nancy Michelle Torres Villanueva 53
  • 54. foreach() PROGRAMACIÓN PARA INTERNET ● Es una manera sencilla de recorrer una arreglo. $array = array(’foo’, ’bar’, ’baz’); foreach ($array as $key => $value) { echo "$key: $value"; } Lic. Nancy Michelle Torres Villanueva 54
  • 55. Iteraciones con funciones PROGRAMACIÓN PARA INTERNET ● array_walk() Aplica una función definida por el usuario a cada miembro de un arreglo. ● array_walk_recursive() Aplica una función definida por el usuario recursivamente a cada miembro de un arreglo. Lic. Nancy Michelle Torres Villanueva 55
  • 56. $frutas = array("d" => "limon", "a" => "naranja", "b" => "platano", "c" => "manzana"); PROGRAMACIÓN PARA INTERNET function test_print($valor, $llave) { echo "$llave. $valor<br />n"; } array_walk($frutas, 'test_print'); Lic. Nancy Michelle Torres Villanueva 56
  • 57. $frutas = array("d" => "limon", "a" => "naranja", "b" => "platano", "c" => "manzana"); PROGRAMACIÓN PARA INTERNET function test_alter(&$valor, $llave, $prefix) { $valor = "$prefix: $valor"; } array_walk($frutas, 'test_print','Fruta: '); Lic. Nancy Michelle Torres Villanueva 57
  • 58. $dulce = array('a' => 'manzana', 'b' => 'platano'); PROGRAMACIÓN PARA INTERNET $frutas = array('dulce' => $dulce, 'acido' => 'limon'); function test_print($valor, $llave) { echo "$llave tiene $valorn"; } array_walk_recursive($frutas, 'test_print'); Lic. Nancy Michelle Torres Villanueva 58
  • 59. Ordenar un arreglo PROGRAMACIÓN PARA INTERNET ● Los elementos de un arreglo se ordenan ascedente o descendentemente, sin embargo, las llaves se perderan en el proceso. ● sort() Ascendentemente ● rsort() Descendentemente ● Se tiene un segundo parámetro opcional para indicar si el ordenamiento será alfabético o numérico Lic. Nancy Michelle Torres Villanueva 59
  • 60. Banderas de ordenamiento PROGRAMACIÓN PARA INTERNET ● SORT_REGULAR – Compara items normalmente (No cambia los tipos) ● SORT_NUMERIC – Compara items numéricamente ● SORT_STRING – Compara items como cadenas ● SORT_LOCALE_STRING – Compara items como cadenas basado en la configuración local Lic. Nancy Michelle Torres Villanueva 60
  • 61. PROGRAMACIÓN PARA INTERNET $numbers = array(24, 19, 3, 16, 56, 8, 171); sort($numbers); ● ( [0] => 3, [1] => 8, [2] => 16, [3] => 19, [4] => 24, [5] => 56, [6] => 171 ) rsort($numbers); ● ( [0] => 171, [1] => 56, [2] => 24, [3] => 19, [4] => 16, [5] => 8, [6] => 3 ) Lic. Nancy Michelle Torres Villanueva 61
  • 62. PROGRAMACIÓN PARA INTERNET $arr = array ("1", 10, "Maria", "maria", "Memo", 1, 5, 9); sort($arr); ● En que orden quedará este arreglo? Lic. Nancy Michelle Torres Villanueva 62
  • 63. Ordenar un arreglo manteniendo las llaves PROGRAMACIÓN PARA INTERNET ● Para que al ordenar las llaves se mantengan, se utilizan las funciones: ● asort() Ascendentemente ● arsort() Descendentemente Lic. Nancy Michelle Torres Villanueva 63
  • 64. Ordenar un arreglo por sus llaves PROGRAMACIÓN PARA INTERNET ● Hemos visto como ordenar un arreglo en base a sus elementos, pero también podemos ordenarlo en base a sus llaves. ● ksort() Ascendentemente ● krsort() Descendentemente Lic. Nancy Michelle Torres Villanueva 64
  • 65. Ordenar un arreglo utilizando una función definida por el usuario PROGRAMACIÓN PARA INTERNET ● Si deseas ordenar un arreglo de alguna otra manera que no sea numérica o alfabéticamente, puedes crear tu propia función y luego mandar a ordenar con esa función. ● usort( ) Ordena el arreglo basado en el valor de cada elemento aplicando una nueva llave ● uasort( ) Mantiene el par llave/valor ● uksort( ) Reordena los elementos basado en la llave de cada elemento Lic. Nancy Michelle Torres Villanueva 65
  • 66. function cmp_length($a, $b) { PROGRAMACIÓN PARA INTERNET if (strlen($a) < strlen($b)) return -1; if (strlen($a) > strlen($b)) return 1; //Si el tamaño es igual return 0; } Lic. Nancy Michelle Torres Villanueva 66
  • 67. PROGRAMACIÓN PARA INTERNET $animals = array("cow", "ox", "hippopotamus", "platypus"); usort($animals, "cmp_length"); ● ( [0] => ox, [1] => cow, [2] => platypus, [3] => hippopotamus ) Lic. Nancy Michelle Torres Villanueva 67
  • 68. Desordenando un arreglo PROGRAMACIÓN PARA INTERNET ● La función shuffle() desacomoda un arreglo de manera random. Las llaves se pierden Lic. Nancy Michelle Torres Villanueva 68
  • 69. Obtener un elemento random PROGRAMACIÓN PARA INTERNET ● La función array_rand() toma uno o mas elementos random del arreglo y devuelve la llave de estos. Lic. Nancy Michelle Torres Villanueva 69
  • 70. Arreglos como pilas y colas PROGRAMACIÓN PARA INTERNET ● PHP ofrece funciones para las actividades de push y pull en las pilas y para shift y unshift en las colas. ● array_push ● array_pop ● array_shift ● array_unshift Lic. Nancy Michelle Torres Villanueva 70
  • 71. PROGRAMACIÓN PARA INTERNET $stack = array(); array_push($stack, ’bar’, ’baz’); $last_in = array_pop($stack); $queue = array(’qux’, ’bar’, ’baz’); $first_element = array_shift($queue); array_unshift($queue, ’foo’); Lic. Nancy Michelle Torres Villanueva 71
  • 72. Diferencia entre dos arreglos PROGRAMACIÓN PARA INTERNET ● La función array_diff() compara dos arreglos y devuelve la diferencia. ● Devuelve un arreglo con todas las entradas del arreglo1 que no estan en los demás arreglos. ● No toma en cuenta las llaves, de modo que si se desea tomar en cuenta las llaves, se utiliza array_diff_assoc() Lic. Nancy Michelle Torres Villanueva 72
  • 73. Diferencia entre dos arreglos en base a sus llaves PROGRAMACIÓN PARA INTERNET ● Para buscar las diferencias entre dos arreglos tomando en cuenta las llaves se utiliza la función array_diff_key() ● En ambas funciones se puede utilizar una función definida por el usuario y las funciones a utilizar son array_diff_uassoc() y array_diff_ukey() Lic. Nancy Michelle Torres Villanueva 73
  • 74. Intersección de dos arreglos PROGRAMACIÓN PARA INTERNET ● La función array_intersect() devuelve todos los elementos del arreglo1 que existen en los demás arreglos. ● Si se desea revisar también las llaves se utiliza la función array_intersect_assoc(). ● array_intersect_key() se utiliza para validar las llaves. ● array_intersect_ukey() y array_intersect_uassoc() para validar con una función ● Lic. Nancy Michelle Torres Villanueva 74
  • 75. Repaso de arreglos PROGRAMACIÓN PARA INTERNET ● print_r ● array_keys ● var_dump ● array_values ● list ● unset ● is_array ● array_unique ● count ● array_fill ● array_count_values ● array_range ● isset ● array_flip ● array_key_exists ● array_reverse ● in_array ● array_walk ● array_search ● array_walk_recursive Lic. Nancy Michelle Torres Villanueva 75
  • 76. Repaso de arreglos PROGRAMACIÓN PARA INTERNET ● reset ● ksort ● prev ● krsort ● next ● usort ● current ● uasort ● key ● uksort ● end ● shuffle ● sort ● array_rand ● rsort ● array_merge ● asort ● array_push ● arsort ● array_pop Lic. Nancy Michelle Torres Villanueva 76
  • 77. Repaso de arreglos PROGRAMACIÓN PARA INTERNET ● array_shift ● array_intersect_uassoc ● array_unshift ● array_intersect_ukey ● array_diff ● array_diff_assoc ● array_diff_key ● array_diff_uassoc ● array_diff_ukey ● array_intersect ● array_intersect_assoc ● array_intersect_key Lic. Nancy Michelle Torres Villanueva 77
  • 78. Repaso Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 79. Question ¿Cómo se declaran arreglos? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 80. Answer $variable = array(); $var[]= “cosa”; Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 81. Question ¿Cuáles son los dos tipos de arreglos y cuáles son sus diferencias? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 82. Answer Normales y Asociativos Los normales son los que no llevan un indice en cambio los asociativos si llevan indice. Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 83. Question ¿Cómo elimino un arreglo? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 84. Answer unset ($arreglo[pos]); este elimina una posición y no reordena. unset ($arreglo); este elimina todo Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 85. Question ¿Cómo separo una cadena en varias partes de un arreglo? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 86. Answer Con la función explode() $variable = explode(" ", "ahora es el tiempo"); Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 87. Question ¿Cómo genero una cadena a partir de un arreglo? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 88. Answer Con la función implode o join print "Animales que he visto: " . implode(", ", $animalesVistos); Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 89. Question ¿Cómo ordeno un arreglo sin perder el orden de las llaves(índices)? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 90. Answer Con la función asort() Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 91. Question ¿Cómo ordeno de manera inversa en base al índice? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 92. Answer Con la función krsort() Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 93. Question ¿Cuál es la diferencia entre la función array_search() y in_array()? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 94. Answer La función array_search() devuelve la posición, si no existe devuelve falso. La función in_array() solo dice si existe o no o devueve resultado booleano. Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 95. Question ¿Cuáles son las maneras de concatenar arreglos? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 96. Answer Con + y merge La diferencia de estos son la manera de preservar la información en caso de estar repetida Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 97. Question ¿Cómo invierto un arreglo? Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 98. Answer Con la función array_reverse() Programación para Internet Lic. Nancy Michelle Torres Villanueva
  • 99. Arreglos PROGRAMACIÓN PARA INTERNET ● Los arreglos son los reyes indiscutibles de las estructuras de datos avanzadas en PHP. ● Los arreglos en PHP son extremadamente flexibles, permiten llaves numéricas de incremento automático, llaves alfanuméricas o una mezcla de ambos, y son capaces de almacenar casi cualquier valor, incluyendo otros arreglos. ● Con más de setenta funciones para la manipulación de ellos, los arreglos pueden hacer en la práctica cualquier cosa que puedas imaginar y algo más. Lic. Nancy Michelle Torres Villanueva 1
  • 100. Arreglos... PROGRAMACIÓN PARA INTERNET ● Todos los arreglos son colecciones ordenadas de elementos, llamados elementos. ● Cada elemento tiene un valor, y es identificada por una llave que es exclusiva del arreglo al que pertenece. ● Las claves pueden ser números enteros o cadenas. Lic. Nancy Michelle Torres Villanueva 2
  • 101. Creación de arreglos PROGRAMACIÓN PARA INTERNET ● $a = array (10, 20, 30); ● $b = array (’a’ => 10, ’b’ => 20, ’cee’ => 30); ● $c = array (5 => 1, 3 => 2, 1 => 3,); ● $d = array(); ● $e = array(Hola, Adios); ● $f = array(“uno”, “dos”, “tres”); Lic. Nancy Michelle Torres Villanueva 3
  • 102. Acceso a los valores PROGRAMACIÓN PARA INTERNET Los valores contenidos en un arreglo se pueden recuperar y modificar usando corchetes [ ]. Lic. Nancy Michelle Torres Villanueva 4
  • 103. PROGRAMACIÓN PARA INTERNET ● Siguiente llave numerica mas grande $x[] = 10; ● Asignamos en que llave guardar $x[’aa’] = 11; ● Imprimimos lo guardado en la llave 0, lo cual será 10 echo $x[0]; Lic. Nancy Michelle Torres Villanueva 5
  • 104. PROGRAMACIÓN PARA INTERNET $newArray[0] = "PHP"; $newArray[1] = "MySQL"; $newArray[2] = "Apache"; ● ¿Qué hace? $newArray[2] = "Cherokee"; Lic. Nancy Michelle Torres Villanueva 6
  • 105. PROGRAMACIÓN PARA INTERNET $shopping = array( ); $shopping[] = "Leche"; $shopping[] = "Cafe"; $shopping[] = "Azucar"; ● En que posiciones ha quedado cada elemento? Lic. Nancy Michelle Torres Villanueva 7
  • 106. PROGRAMACIÓN PARA INTERNET $array = array( "primero"=>1, "segundo"=>2, "tercero"=>3); ● Qué imprime? print $array["segundo"]; Lic. Nancy Michelle Torres Villanueva 8
  • 107. PROGRAMACIÓN PARA INTERNET $numeros = array( 1=>"uno", "dos", "tres", "cuatro"); ● Cuál es la llave del item “tres”?? Lic. Nancy Michelle Torres Villanueva 9
  • 108. PROGRAMACIÓN PARA INTERNET $numeros = array( 1=>"uno", 3=>"tres", 5=>"cinco"); $numeros[]="otro"; ● En que llave quedó el elemento “otro”? Lic. Nancy Michelle Torres Villanueva 10
  • 109. PROGRAMACIÓN PARA INTERNET $a = array ( ’4’ => 5, ’a’ => ’b’); $a[] = 44; ● En qué llave quedará el item 44? Lic. Nancy Michelle Torres Villanueva 11
  • 110. PROGRAMACIÓN PARA INTERNET $a = array ( ’A’ => “Esta es una A”, ’B’ => “Esta es una B”); $a[] = “Esta que será”; ● En qué llave quedará el item “Esta que será”? Lic. Nancy Michelle Torres Villanueva 12
  • 111. PROGRAMACIÓN PARA INTERNET $numeros = array(1=>"uno", 3=>"tres", 5=>"cinco"); $numeros[2] = "dos"; $numeros[4] = "cuatro"; $numeros[6] = "seis"; ● En que orden ha quedado el arreglo? Lic. Nancy Michelle Torres Villanueva 13
  • 112. PROGRAMACIÓN PARA INTERNET ● Se dice pues que las llaves son automáticamente incrementales y siempre los elementos se agregarán en el siguiente valor mayor posible y al final del arreglo. ● Tenga en cuenta que las llaves diferencian entre mayúsculas y minúsculas. Por lo tanto, la llave "A" es diferente de 'a', pero las llaves '1' y 1 son los mismos. Lic. Nancy Michelle Torres Villanueva 14
  • 113. Impresión de arreglos PROGRAMACIÓN PARA INTERNET ● PHP provee dos funciones para imprimir el valor de una variable recursivamente: ● print_r() ● var_dump() Lic. Nancy Michelle Torres Villanueva 15
  • 114. print_r() y var_dump() PROGRAMACIÓN PARA INTERNET ● var_dump() muestra además el tipo de dato ● var_dump() puede mostrar el valor de varias variables al mismo tiempo ● print_r() puede regresar el valor como una cadena Lic. Nancy Michelle Torres Villanueva 16
  • 115. Arreglos multidimensionales PROGRAMACIÓN PARA INTERNET ● A menudo los datos no pueden ser representados en un arreglo sencillo de escalar en valores enteros, cadenas, booleanos, y flotantes. Algunos datos sólo pueden estar representados cuando los arreglos tienen otros arreglos de valores. Lic. Nancy Michelle Torres Villanueva 17
  • 116. PROGRAMACIÓN PARA INTERNET $array = array(); $array[] = array( ’tu’, ’yo’); $array[] = array( ’el’, ’nos’); echo $array[0][1] . $array[1][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 18
  • 117. PROGRAMACIÓN PARA INTERNET $planetas = array( array("Mercurio", 0.39, 0.38), array("Venus", 0.72, 0.95), array("Tierra", 1.0, 1.0), array("Marte", 1.52, 0.53) ); print $planetas[2][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 19
  • 118. PROGRAMACIÓN PARA INTERNET $planetas2 = array( "Mercurio"=> array("dist"=>0.39, "dia"=>0.38), "Venus" => array("dist"=>0.72, "dia"=>0.95), "Tierra" => array("dist"=>1.0, "dia"=>1.0, "satelites"=>array("Luna")), "Marte" => array("dist"=>0.39, "dia"=>0.53, "satelites"=>array("Phobos", "Deimos")) ); print $planetas2["Tierra"][satelites"][0]; ● Qué imprime? Lic. Nancy Michelle Torres Villanueva 20
  • 119. Asignando a variables PROGRAMACIÓN PARA INTERNET independientes ● A veces es más fácil trabajar con los valores de un arreglo mediante la asignación a las variables individuales. Si bien esto puede ser logrado mediante la extracción de elementos individuales y la asignación de cada uno de ellos a una variable diferente, PHP ofrece un acceso rápido. Lic. Nancy Michelle Torres Villanueva 21
  • 120. $info = array('café', 'color', 'cafeína'); ● Todas las variables PROGRAMACIÓN PARA INTERNET list($bebida, $color, $componente) = $info; ● Solo algunas variables list($bebida, , $componente) = $info; ● Solo la tercera list( , , $componente) = $info; Lic. Nancy Michelle Torres Villanueva 22
  • 121. Unión de arreglos PROGRAMACIÓN PARA INTERNET ● Se logra con el operador + ● Los elementos con llaves repetidas solo se muestran una vez, si el contenido es distinto, esto representa perdida de información Lic. Nancy Michelle Torres Villanueva 23
  • 122. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 3); $b = array (’a’ => 1, ’b’ => 2, ’c’ => 3); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 24
  • 123. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 3); $b = array (’a’ => 1, 2, 3); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 25
  • 124. PROGRAMACIÓN PARA INTERNET $a = array ('a' => 1, 'b' => 2, 'c' => 3); $b = array ('a' => 4, 'b' => 5, 'c' => 6); $c = $a+$b; ● Cuál es el contenido de $c? Lic. Nancy Michelle Torres Villanueva 26
  • 125. PROGRAMACIÓN PARA INTERNET $cosas = array("silla", "mesa", "maleta", "caja"); $edificios = array("casa", "depa", "palacio"); $partes = array("cabeza", "pies"); $agregados = $partes + $edificios + $cosas; ● Cuál es el contenido de $agregados? Lic. Nancy Michelle Torres Villanueva 27
  • 126. Unión de arreglos sin perder PROGRAMACIÓN PARA INTERNET elementos ● La funcion array_merge() concatena uno o mas arreglos, agregandolos al final. ● Si los arreglos tienen llaves de cadenas iguales, entonces el ultimo valor va a sobrescribir por la vez previa en que aparecio la llave. Lic. Nancy Michelle Torres Villanueva 28
  • 127. PROGRAMACIÓN PARA INTERNET $array1 = array("color" => "rojo", 2, 4); $array2 = array("a", "b", "color" => "verde", "forma" => "trapezoide", 4); $result = array_merge($array1, $array2); ● ( [color] => verde, [0] => 2, [1] => 4, [2] => a, [3] => b, [forma] => trapezoide, [4] => 4) Lic. Nancy Michelle Torres Villanueva 29
  • 128. Comparando arreglos PROGRAMACIÓN PARA INTERNET ● $a = array (1, 2, 3); ● $b = array (1 => 2, 2 => 3, 0 => 1); ● $c = array (’a’ => 1, ’b’ => 2, ’c’ => 3); ● ● $a == $b ● $a === $b ● $a == $c Lic. Nancy Michelle Torres Villanueva 30
  • 129. Operadores de comparación de PROGRAMACIÓN PARA INTERNET arreglos ● == Mismo número de elementos con las mismas llaves sin importar el orden. ● === Mismo par llave/valor en el mismo orden Lic. Nancy Michelle Torres Villanueva 31
  • 130. Tamaño de un arreglo PROGRAMACIÓN PARA INTERNET ● El tamaño de un arreglo puede ser obtenido con la función count(). ● Funciona con cualquier variable, no necesariamente arreglos, si se quiere asegurar de que lo este usando en un arreglo, deberá primero utilizar la función is_array() Lic. Nancy Michelle Torres Villanueva 32
  • 131. PROGRAMACIÓN PARA INTERNET $a = array (1, 2, 4); $b = array(); $c = 10; echo count($a); echo count($b); if is_array($c) echo count($c); Lic. Nancy Michelle Torres Villanueva 33
  • 132. Repeticiones de un elemento en PROGRAMACIÓN PARA INTERNET el arreglo ● count() devuelve el total de elementos en un arreglo, pero si se desea contar de manera unica los elementos se utiliza array_count_values(). ● Devuelve un arreglo asociando cada elemento con la cantidad de repeticiones. Lic. Nancy Michelle Torres Villanueva 34
  • 133. $mascotas = array( "Juan"=>"Perro", PROGRAMACIÓN PARA INTERNET "Ana"=>"Conejo", "Pedro"=>"Gato", "Maria"=>"Hamster", "Luis"=>"Perro", "Paco"=>"Gato"); $frecuencia = array_count_values($mascotas); [Perro] => 2 [Conejo] => 1 [Gato] => 2 [Hamster] => 1 Lic. Nancy Michelle Torres Villanueva 35
  • 134. Determinar si un elemento en una PROGRAMACIÓN PARA INTERNET posición dada existe $a = array (’a’ => 1, ’b’ => 2); echo isset ($a[’a’]); echo isset ($a[’c’]); $a = array (’a’ => NULL, ’b’ => 2); echo isset ($a[’a’]); ● Qué impresiones se obtienen? Lic. Nancy Michelle Torres Villanueva 36
  • 135. Determinar si una llave existe PROGRAMACIÓN PARA INTERNET $a = array (’a’ => NULL, ’b’ => 2); echo array_key_exists ('a',$a); ● Qué aparece en pantalla? Lic. Nancy Michelle Torres Villanueva 37
  • 136. Buscar si un elemento existe en PROGRAMACIÓN PARA INTERNET el arreglo $a = array (’a’ => NULL, ’b’ => 2); echo in_array (2, $a); ● Qué aparece en pantalla? ● Se puede pasar un tercer parámetro para obligar el tipo de dato. Lic. Nancy Michelle Torres Villanueva 38
  • 137. Obtener la posición de un PROGRAMACIÓN PARA INTERNET elemento en el arreglo ● array_search() funciona igual que in_array() solo que este devolverá la llave. Si el valor no fue encontrado devuelve false. ● Tiene un tercer parámetro opcional para obligar la concordancia del tipo de dato $a = array (’a’ => NULL, ’b’ => 2); echo array_search (2, $a); ● Qué aparece en pantalla? Lic. Nancy Michelle Torres Villanueva 39
  • 138. Un arreglo con las llaves PROGRAMACIÓN PARA INTERNET ● Con array_keys() se obtiene un arreglo con las llaves de otro arreglo. ● Se pueden poner parámetros opcionales y entonces solo devolverá las llaves de los elementos indicados en los parámetros. Lic. Nancy Michelle Torres Villanueva 40
  • 139. $mascotas = array( "Juan"=>"Perro", PROGRAMACIÓN PARA INTERNET "Ana"=>"Conejo", "Pedro"=>"Gato", "Maria"=>"Hamster", "Luis"=>"Perro", "Paco"=>"Gato"); $llaves = array_keys($mascotas); ("Juan”, “Ana”, “Pedro”, “Maria”, “Luis”, “Paco") $llaves = array_keys($mascotas,”Perro”); ("Juan”, “Luis") Lic. Nancy Michelle Torres Villanueva 41
  • 140. Un arreglo sin llaves PROGRAMACIÓN PARA INTERNET ● La función array_values() genera un nuevo arreglo solamente con los valores y olvida las llaves Lic. Nancy Michelle Torres Villanueva 42
  • 141. Eliminación de elementos PROGRAMACIÓN PARA INTERNET ● Un elemento puede ser eliminado de un arreglo, o un arreglo completo se puede eliminar llamando a unset ( ). ● Sin embargo, la eliminación de un elemento no reasigna indices. Lic. Nancy Michelle Torres Villanueva 43
  • 142. PROGRAMACIÓN PARA INTERNET $favoritos = array("PHP", "Ace", "COBOL", "Java", "C++"); ● Eliminar COBOL del arreglo unset($favoritos[2]); Lic. Nancy Michelle Torres Villanueva 44
  • 143. Eliminando elementos repetidos PROGRAMACIÓN PARA INTERNET ● La función array_unique() devuelve un arreglo sin items repetidos. ● Si el arreglo tiene llaves, se quedará con la primer llave, y las siguientes ocasiones en que se repita, serán omitidas. Lic. Nancy Michelle Torres Villanueva 45
  • 144. Un arreglo rellenado PROGRAMACIÓN PARA INTERNET ● La función array_fill() crea un arreglo rellenado con el dato indicado. ● Se debe indicar la primer llave, la cantidad de repeticiones y el dato a repetir. $unidad = array_fill(2, 5, "uno"); Array ( [2] => uno [3] => uno [4] => uno [5] => uno [6] => uno ) Lic. Nancy Michelle Torres Villanueva 46
  • 145. Arreglo con una serie PROGRAMACIÓN PARA INTERNET ● La función range() crea un arreglo con una serie dentro. ● Se debe indicar el primer valor y el último valor. Puede indicarse como parámetro opcional el tipo de incremento $letras = range("a", "z", 5); Array ( [0] => a [1] => f [2] => k [3] => p [4] => u [5] => z ) Lic. Nancy Michelle Torres Villanueva 47
  • 146. Invertir un llaves por valores PROGRAMACIÓN PARA INTERNET ● La función array_flip() invierte las llaves por los valores en un arreglo. $a = array (’a’, ’b’, ’c’); array_flip ($a); ["a"]=> 0 , ["b"]=> 1 , ["c"]=> 2) Lic. Nancy Michelle Torres Villanueva 48
  • 147. Invertir el orden de un arreglo PROGRAMACIÓN PARA INTERNET ● La función array_reverse() invierte el orden de los elementos de un arreglo. $cont = array("cero", "uno", "dos", "tres", "cuatro"); $inverso = array_reverse($cont); Array ( [4] => cuatro [3] => tres [2] => dos [1] => uno [0] => cero ) Lic. Nancy Michelle Torres Villanueva 49
  • 148. Convertir un arreglo en una PROGRAMACIÓN PARA INTERNET cadena ● La función implode() regresa una cadena creada por la union de cada uno de los elementos en el arreglo, insertando una cadena de unión entre cada elemento. ● join() es un alias de implode() y funciona exactamente igual $animales = array("canguro", "leon", "jirafa”); implode(", ", $animales); Lic. Nancy Michelle Torres Villanueva 50
  • 149. Convertir una cadena en un PROGRAMACIÓN PARA INTERNET arreglo ● La función explode() regresa un arreglo de cadenas creadas por la ruptura de una cierta cadena en cada ocurrencia despues de un separador dado $palabras = explode(" ", "Ahora es el momento"); print_r($palabras); Array ( [0] => Ahora [1] => es [2] => el [3] => momento ) Lic. Nancy Michelle Torres Villanueva 51
  • 150. Iteraciones en un arreglo PROGRAMACIÓN PARA INTERNET ● Existen varias funciones para poder trabajar co las iteraciones dentro de un arreglo ● reset() Reinicia el puntero del arreglo para poder recorrerlo. ● prev() Recorre el puntero a la posición anterior ● next() Recorre el puntero a la siguiente posición ● current() Entrega el valor guardado en la posición actual ● key() Devuelve la llave de la posición actual ● end() Mueve el puntero a la posición final Lic. Nancy Michelle Torres Villanueva 52
  • 151. $array = array(’foo’ => ’bar’, ’baz’, ’bat’ => 2); PROGRAMACIÓN PARA INTERNET function displayArray($array) { reset($array); while (key($array) !== null) { echo key($array).": ".current($array); next($array); } } Lic. Nancy Michelle Torres Villanueva 53
  • 152. foreach() PROGRAMACIÓN PARA INTERNET ● Es una manera sencilla de recorrer una arreglo. $array = array(’foo’, ’bar’, ’baz’); foreach ($array as $key => $value) { echo "$key: $value"; } Lic. Nancy Michelle Torres Villanueva 54
  • 153. Iteraciones con funciones PROGRAMACIÓN PARA INTERNET ● array_walk() Aplica una función definida por el usuario a cada miembro de un arreglo. ● array_walk_recursive() Aplica una función definida por el usuario recursivamente a cada miembro de un arreglo. Lic. Nancy Michelle Torres Villanueva 55
  • 154. $frutas = array("d" => "limon", "a" => "naranja", "b" => "platano", "c" => "manzana"); PROGRAMACIÓN PARA INTERNET function test_print($valor, $llave) { echo "$llave. $valor<br />n"; } array_walk($frutas, 'test_print'); Lic. Nancy Michelle Torres Villanueva 56
  • 155. $frutas = array("d" => "limon", "a" => "naranja", "b" => "platano", "c" => "manzana"); PROGRAMACIÓN PARA INTERNET function test_alter(&$valor, $llave, $prefix) { $valor = "$prefix: $valor"; } array_walk($frutas, 'test_print','Fruta: '); Lic. Nancy Michelle Torres Villanueva 57
  • 156. $dulce = array('a' => 'manzana', 'b' => 'platano'); PROGRAMACIÓN PARA INTERNET $frutas = array('dulce' => $dulce, 'acido' => 'limon'); function test_print($valor, $llave) { echo "$llave tiene $valorn"; } array_walk_recursive($frutas, 'test_print'); Lic. Nancy Michelle Torres Villanueva 58
  • 157. Ordenar un arreglo PROGRAMACIÓN PARA INTERNET ● Los elementos de un arreglo se ordenan ascedente o descendentemente, sin embargo, las llaves se perderan en el proceso. ● sort() Ascendentemente ● rsort() Descendentemente ● Se tiene un segundo parámetro opcional para indicar si el ordenamiento será alfabético o numérico Lic. Nancy Michelle Torres Villanueva 59
  • 158. Banderas de ordenamiento PROGRAMACIÓN PARA INTERNET ● SORT_REGULAR – Compara items normalmente (No cambia los tipos) ● SORT_NUMERIC – Compara items numéricamente ● SORT_STRING – Compara items como cadenas ● SORT_LOCALE_STRING – Compara items como cadenas basado en la configuración local Lic. Nancy Michelle Torres Villanueva 60
  • 159. PROGRAMACIÓN PARA INTERNET $numbers = array(24, 19, 3, 16, 56, 8, 171); sort($numbers); ● ( [0] => 3, [1] => 8, [2] => 16, [3] => 19, [4] => 24, [5] => 56, [6] => 171 ) rsort($numbers); ● ( [0] => 171, [1] => 56, [2] => 24, [3] => 19, [4] => 16, [5] => 8, [6] => 3 ) Lic. Nancy Michelle Torres Villanueva 61
  • 160. PROGRAMACIÓN PARA INTERNET $arr = array ("1", 10, "Maria", "maria", "Memo", 1, 5, 9); sort($arr); ● En que orden quedará este arreglo? Lic. Nancy Michelle Torres Villanueva 62
  • 161. Ordenar un arreglo manteniendo PROGRAMACIÓN PARA INTERNET las llaves ● Para que al ordenar las llaves se mantengan, se utilizan las funciones: ● asort() Ascendentemente ● arsort() Descendentemente Lic. Nancy Michelle Torres Villanueva 63
  • 162. Ordenar un arreglo por sus llaves PROGRAMACIÓN PARA INTERNET ● Hemos visto como ordenar un arreglo en base a sus elementos, pero también podemos ordenarlo en base a sus llaves. ● ksort() Ascendentemente ● krsort() Descendentemente Lic. Nancy Michelle Torres Villanueva 64
  • 163. Ordenar un arreglo utilizando una PROGRAMACIÓN PARA INTERNET función definida por el usuario ● Si deseas ordenar un arreglo de alguna otra manera que no sea numérica o alfabéticamente, puedes crear tu propia función y luego mandar a ordenar con esa función. ● usort( ) Ordena el arreglo basado en el valor de cada elemento aplicando una nueva llave ● uasort( ) Mantiene el par llave/valor ● uksort( ) Reordena los elementos basado en la llave de cada elemento Lic. Nancy Michelle Torres Villanueva 65
  • 164. function cmp_length($a, $b) { PROGRAMACIÓN PARA INTERNET if (strlen($a) < strlen($b)) return -1; if (strlen($a) > strlen($b)) return 1; //Si el tamaño es igual return 0; } Lic. Nancy Michelle Torres Villanueva 66
  • 165. PROGRAMACIÓN PARA INTERNET $animals = array("cow", "ox", "hippopotamus", "platypus"); usort($animals, "cmp_length"); ● ( [0] => ox, [1] => cow, [2] => platypus, [3] => hippopotamus ) Lic. Nancy Michelle Torres Villanueva 67
  • 166. Desordenando un arreglo PROGRAMACIÓN PARA INTERNET ● La función shuffle() desacomoda un arreglo de manera random. Las llaves se pierden Lic. Nancy Michelle Torres Villanueva 68
  • 167. Obtener un elemento random PROGRAMACIÓN PARA INTERNET ● La función array_rand() toma uno o mas elementos random del arreglo y devuelve la llave de estos. Lic. Nancy Michelle Torres Villanueva 69
  • 168. Arreglos como pilas y colas PROGRAMACIÓN PARA INTERNET ● PHP ofrece funciones para las actividades de push y pull en las pilas y para shift y unshift en las colas. ● array_push ● array_pop ● array_shift ● array_unshift Lic. Nancy Michelle Torres Villanueva 70
  • 169. PROGRAMACIÓN PARA INTERNET $stack = array(); array_push($stack, ’bar’, ’baz’); $last_in = array_pop($stack); $queue = array(’qux’, ’bar’, ’baz’); $first_element = array_shift($queue); array_unshift($queue, ’foo’); Lic. Nancy Michelle Torres Villanueva 71
  • 170. Diferencia entre dos arreglos PROGRAMACIÓN PARA INTERNET ● La función array_diff() compara dos arreglos y devuelve la diferencia. ● Devuelve un arreglo con todas las entradas del arreglo1 que no estan en los demás arreglos. ● No toma en cuenta las llaves, de modo que si se desea tomar en cuenta las llaves, se utiliza array_diff_assoc() Lic. Nancy Michelle Torres Villanueva 72
  • 171. Diferencia entre dos arreglos en PROGRAMACIÓN PARA INTERNET base a sus llaves ● Para buscar las diferencias entre dos arreglos tomando en cuenta las llaves se utiliza la función array_diff_key() ● En ambas funciones se puede utilizar una función definida por el usuario y las funciones a utilizar son array_diff_uassoc() y array_diff_ukey() Lic. Nancy Michelle Torres Villanueva 73
  • 172. Intersección de dos arreglos PROGRAMACIÓN PARA INTERNET ● La función array_intersect() devuelve todos los elementos del arreglo1 que existen en los demás arreglos. ● Si se desea revisar también las llaves se utiliza la función array_intersect_assoc(). ● array_intersect_key() se utiliza para validar las llaves. ● array_intersect_ukey() y array_intersect_uassoc() para validar con una función ● Lic. Nancy Michelle Torres Villanueva 74