Se muestra el manejo de arreglos y matrices en PHP y la manera de usar las matrices como parte de una solucin en casos prcticos Conocer el manejo de arreglos y matrices en PHP Usar las matrices como parte de una solucin en casos prcticos MATRICES Una matriz arreglo (array en ingles) es un conjunto de aria!les agrupadas !ajo un "nico nom!re# Cada aria!le dentro de la matriz se denomina elemento# $entro de la misma matriz pueden e%istir aria!les de di&erentes tipos y no es necesario 'ue sean todas del mismo tipo# I. Hay que diferenciar entre los dos tipos de matrices existentes: a) (nde%ada: )'uella cuyo acceso a los elementos se realiza por la posicin 'ue ocupan dentro de la estructura (se inician siempre desde la posicin *)# +jemplo: ,amigo-*./ !) )sociatia: +s a'uella en la 'ue los elementos estn &ormados por pares clae0alor y el acceso se realiza proporcionando una determinada clae# +jemplo: ,amigo-1edad23456. II. Para crear matrices en PHP existen dos formas: a) 7orma impl8cita: 9ue consistir8a en indicarle el elemento (ya sea proporcionando su posicin o su clae)# +jemplo: ,nom!res -*.32juan2/ +n caso de no indicarle una posicin el array tomara el alor siguiente al "ltimo alor introducido# +jemplo: ,nom!res -.3:;ucas/: << tomar8a como alor 6 ya 'ue lo ultimo introducido era *# !) Mediante array( ): +n el cual le pasamos los elementos como parmetros# +n caso de matriz inde%ada toman la posicin 'ue ocupan en la creacin de la matriz= mientras 'ue los de la matriz asociatia se les asigna su alor mediante >34># PHP, Gua 4 Contenido ?!jetio +speci&ico 7acultad: (ngenier8a +scuela: Computacin )signatura: PHP (ntroduccion Teorica 2 +jemplo:,amigo3array(:@om!re:34:Aose:=:$ireccion:34:@eopatria 56:)/ @ota:Ca!e destacar 'ue PHP no solo se limita a la e%istencia de matrices por s8 solo sino 'ue e%isten matrices de matrices= o lo 'ue es lo mismo= matrices multidimensionales# +jemplo: ,amigos-5.-:Pedro:.# imensi!n de una matri" para administrar la dimension de una matriz usamos# count(aria!le) numero de elementos en la matriz sizeo&(matriz) alias de count arrayBslice(matriz= i= l) recorta la matriz desde CiD= una cantidad ClD de elementos= y retorna un arreglo resultado arrayBsEi&t(,matriz) 9uita y retorna un elemento al principio de la matriz arrayBpusE(,matriz= alor) inserta en la CmatrizD el CalorD Eliminar un elemento de matri" o la matri" Para eliminar un elemento o todos los elementos= utilizamos las siguientes &unciones# unset(,matriz-F.) unset(,matriz) #a$e%aci!n so&re matrices Cuando se trata de matrices inde%adas la naegacin es sencilla ya 'ue tan solo !asta acceder al elemento 'ue 'ueremos mostrar= pero al tratarse de alguna matriz asociatia no se puede aplicar el mismo tratamiento# Para ello e%isten un conjunto de &unciones pre&a!ricadas 'ue nos permiten realizar multitud de acciones:Sinta%is )ccin reset(matriz) +l puntero interno uele a la primera posicin end(matriz) +l puntero interno a a la "ltima posicin ne%t(matriz) +l puntero a al elemento siguiente pre(matriz) )ccede al elemento anterior current(matriz) $euele el contenido del elemento actual 'rdenar una matri" ;as matrices pueden ordenarse a partir de los alores almacenados o de los 8ndices (llaes) sort(,matriz) ordena la matriz a partir de alores almacenados Gsort(,matriz) ordena a partir del 8ndice asort(,matriz) ordena un arreglo asociatio a partir del alor PHP, Gua 4 3 Hu8a de la!oratorio 5 Seridor Ie! con interprete PHP +ditar los siguientes cdigos ejemplo de PHP: 6) ejemploB6#pEp <?php //imprimiendo matriz $matriz=array(1,2,3,5); echo $matriz[2];//imprime 3 ?> 5) ejemploB5#pEp <?php //ordenando un arreglo por $matrizz=array('juan'=>21,'pedro'=>23, 'manuel'=>29,'enrrique'=>51); echo ordenando matriz por el indice:<br>; if(ksort($matrizz)){ foreach($matrizz as $key => $val) echo $key tiene $val aos<br>; } ?> J9ue retorna la &uncion Gsort()K L) ejemploBL#pEp <?php //cuantas filas tiene esta matriz? $matriz = array("unamatriz" => array(6 => 5, 13 => 9, "a" => 42)); echo $matriz["unamatriz"][6]; // 5 echo $matriz["unamatriz"][13]; // 9 echo $matriz["unamatriz"]["a"]; // 42 ?> J$e cuantas dimensiones es la matrizK M) ejemploBM#pEp <?php //imprimiendo una matriz $pais=array( espana=>array(nombre=>Espana,lengua=>Castellano,moneda=>Peseta), francia=>array(nombre=>Francia,lengua=>Frances,moneda=>Franco), inglaterra=>array(nombre=>inglaterra,lengua=>ingles,moneda=>libra) ); foreach($pais as $key => $val){ echo Acerca de $key<br>; echo <ul>; foreach($val as $campo=>$dato) echo <li>$campo: $dato</li>; echo </ul>; } ?> J$e 'ue tipo es la aria!le ,arK= J9ue contieneK PHP, Gua 4 Material y +'uipo Procedimiento 4 6# Modi&i'ue el ejemplo 6 para 'ue recorra la matriz Eaciendo uso de las &unciones ne%= pre= end y reset# 5# Modi&i'ue los ejemplos 5 y M de manera 'ue los arreglos se impriman ordenadamente= por alor y por 8ndice# L# Modi&i'ue el ejemplo M de modo 'ue solo se muestren los arreglos de 7rancia e (nglaterra= Eaga uso de la &uncin arrayBslice M# Modi&i'ue el ejemplo 5 de modo 'ue solo se muestre el primero y el ultimo elemento del arreglo= Eaga uso de las &unciones reset= current y end# (nestigue la manera de Eacer una &uncin con PHP# ;uego Eaga una &uncin llamada CordenarD de ordenamiento por alor 'ue tome como parmetro una matriz numNrica y retorne una matriz ordenada(no usar la &uncin sort) PHP, Gua 4 +jercicios (nestigacion complementaria 5 PHP, Gua 4 Hoja de cotejo: M Hu8a M: Matrices en PHP )lumno: $ocente: Ma'uina @o: H;: 7ecEa: E(A)*ACI'# + ,-. /-0 1-,2 #ota C'#'CIMIE#T' $el 5* al L*O Conocimiento de&iciente de los &undamentos tericos Conocimiento y e%plicacin incompleta de los &undamentos tericos Conocimiento completo y e%plicacin clara de los &undamentos tericos AP)ICACI3# E) C'#'CIMIE#T' $el M*O al P*O ACTIT* $el 6FO al L*O @o tiene actitud proactia# )ctitud propositia y con propuestas no aplica!les al contenido de la gu8a# Tiene actitud proactia y sus propuestas son concretas# T'TA) 6**O