Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matrices. PHP
Matrices. PHP
Matrices
Qu es una matriz Crear una matriz Imprimir todos los valores de una matriz: la funcin print_r() Borrar una matriz o elementos de una matriz Contar elementos de una matriz Mximo y mnimo Encontrar un valor en una matriz
Qu es una matriz
Una matriz es un tipo de variable que puede almacenar varios valores a la vez. En las matrices de una dimensin (que a veces se llaman vectores) cada elemento se identifica por un ndice que se escribe entre corchetes ($matriz[$indice]). Pero las matrices pueden tener ms dimensiones (como las matrices matemticas) y entonces los elementos se identifican por varios ndices que se escriben cada uno entre corchetes ($matriz[$indice1] [$indice2]...). En otros lenguajes de programacin, los ndices de las matrices tienen que ser nmeros enteros positivos y tienen que estar todos definidos, pero en PHP se dice que las matrices son asociativas porque los ndices no tienen por qu ser nmeros y cuando son nmeros no tienen por qu ser valores correlativos.
<pp ?h $arz5 =2; mti[] 5 $arz3 =1; mti[] 2 pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= 2 5 > 5 []= 1 3 > 2 )
<pp ?h $arz'ee]'dd]=2; mti[pp'[ea' 5 $arz'un]'eo]=7; mti[ja'[ps' 5 pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
Ary ra ( [ee = Ary pp] > ra ( [dd = 2 ea] > 5 ) [un = Ary ja] > ra ( [eo = 7 ps] > 5 ) )
Las matrices en PHP son matrices asociativas, es decir, que los ndices no tienen por qu ser nmeros enteros positivos:
<pp ?h $arz5 =2; mti[] 5 $arz-]="eaio; mti[1 ngtv" $arz"eo1]="ic" mti[nmr " cno; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= 2 5 > 5 [1 = ngtv -] > eaio [eo1 = cno nmr ] > ic )
<pp ?h
www.mclibre.org/consultar/php/lecciones/php_matrices.html
1/4
16/01/13
$arz=ary 5= 2,- = "eaio,"eo1 = "ic"; mti ra( > 5 1 > ngtv" nmr " > cno) pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
<pp ?h $arz=ary5= ary3= 2) "ers = ary1= "er A); mti ra( > ra( > 5, lta" > ra( > lta ") pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
Ary ra ( []= Ary 5 > ra ( []= 2 3 > 5 ) [ers = Ary lta] > ra ( []= ltaA 1 > er ) )
Para mejorar la legibilidad una solucin es aadir la etiqueta <pre>, que fuerza al navegador a mostrar los espacios y saltos de lnea.
<pp ?h $arz=ary'obe = 'eio,'plio'= 'oeo) mti ra(nmr' > Ppt' aelds > Cnj'; pit'pe' pitr$arz;pit'/r>; rn <r>; rn_(mti) rn <pe' ? > Ary ra ( [obe = Ppt nmr] > eio [plio]= Cnj aelds > oeo )
Si el argumento $devolver toma el valor T U , print_r() no escribe nada pero devuelve el texto que se escribe cuando el argumento no est o toma el RE valor F L E AS. Si el argumento $devolver no est o toma el valor F L E print_r() devuelve 1 (TRUE). AS,
<pp ?h $arz=ary'obe = 'eio,'plio'= 'oeo) mti ra(nmr' > Ppt' aelds > Cnj'; $m =pitr$arz TU) tp rn_(mti, RE; pit"pL mti e $m<p" rn <>a arz s tp/>; ? >
<pp ?h $arz=ary'obe = 'eio,'plio'= 'oeo) mti ra(nmr' > Ppt' aelds > Cnj'; $m =pitr$arz FLE; tp rn_(mti, AS) pit"pL mti e $m<p" rn <>a arz s tp/>; ? >
<pp ?h $arz=ary'obe = 'eio,'plio'= 'oeo) mti ra(nmr' > Ppt' aelds > Cnj'; $m =pitr$arz; tp rn_(mti) pit"pL mti e $m<p" rn <>a arz s tp/>; ? >
<pp ?h
www.mclibre.org/consultar/php/lecciones/php_matrices.html
$arz=ary 5= 2,- = "eaio,"eo1 = "ic"; mti ra( > 5 1 > ngtv" nmr " > cno)
2/4
16/01/13
$arz=ary 5= 2,- = "eaio,"eo1 = "ic"; mti ra( > 5 1 > ngtv" nmr " > cno) pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ust(mti[]; ne $arz5) pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
<pp ?h $arz=ary 5= 2,- = "eaio,"eo1 = "ic"; mti ra( > 5 1 > ngtv" nmr " > cno) pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ust(mti) ne $arz; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
Ary ra ( []= 2 5 > 5 [1 = ngtv -] > eaio [eo1 = cno nmr ] > ic )
En una matriz multidimensional, la funcin c u t $ a r z devolvera simplemente el nmero de elementos del primer ndice: on(mti) La matriz tiene 2 elementos.
<pp ?h $arz5[]=2; mti[]3 5 $arz5[]=3; mti[]4 0 $arz5[]=3; mti[]5 5 $arz"er"[]="er A; mti[lta]1 lta " $lmno =cut$arz; eeets on(mti) pit"pL mti tee$lmno eeets<p" rn <>a arz in eeets lmno./>; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= Ary 5 > ra ( []= 2 3 > 5 []= 3 4 > 0 []= 3 5 > 5 ) [er]= Ary lta > ra ( []= ltaA 1 > er ) )
Para contar todos los elementos de una matriz multidimensional, habra que utilizar la funcin c u t $ a r z C U T R C R I E . on(mti, ON_EUSV) La matriz tiene 6 elementos.
<pp ?h $arz5[]=2; mti[]3 5 $arz5[]=3; mti[]4 0 $arz5[]=3; mti[]5 5 $arz"er"[]="er A; mti[lta]1 lta " $lmno =cut$arz CUTRCRIE; eeets on(mti, ON_EUSV) pit"pL mti tee$lmno eeets<p" rn <>a arz in eeets lmno./>; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= Ary 5 > ra ( []= 2 3 > 5 []= 3 4 > 0 []= 3 5 > 5 ) [er]= Ary lta > ra ( []= ltaA 1 > er ) )
Es importante fijarse en que en este caso la funcin c u t ) est contando tambin las dos matrices fila. Si quisieramos contar nicamente los on( elementos de una matriz bidimensional habra que restar el nmero de matrices fila: La matriz tiene 4 elementos.
www.mclibre.org/consultar/php/lecciones/php_matrices.html 3/4
16/01/13
<pp ?h $arz5[]=2; mti[]3 5 $arz5[]=3; mti[]4 0 $arz5[]=3; mti[]5 5 $arz"er"[]="er A; mti[lta]1 lta "
$lmno =cut$arz CUTRCRIE-on(mti) eeets on(mti, ON_EUSV)cut$arz; pit"pL mti tee$lmno eeets<p" rn <>a arz in eeets lmno./>; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? >
Mximo y mnimo
La funcin m x $ a r z . . devuelve el valor mximo de una matriz (o varias). La funcin m n $ a r z . . devuelve el valor mnimo de una matriz a(mti, .) i(mti, .) (o varias).
<pp ?h $aoe =ary(0 4,1,-) vlrs ra 1, 0 5 1; $aio=mx$aoe) mxm a(vlrs; $iio=mn$aoe) mnm i(vlrs; pit"pe" pitr$aoe) pit"pe" rn <r>; rn_(vlrs; rn <r>; pit"pE mxm d l mti e $aio<p" rn <>l io e a arz s mxm./>; pit"pE mnm d l mti e $iio<p" rn <>l io e a arz s mnm./>; ? > Ary ra ( []= 1 0 > 0 []= 4 1 > 0 []= 1 2 > 5 []= 3 > 1 )
Los valores no numricos se tratan como 0, pero si 0 es el mnimo o el mximo, la funcin devuelve la cadena.
<pp ?h $aoe =ary(0 4,1,'b'; vlrs ra 1, 0 5 ac) $aio=mx$aoe) mxm a(vlrs; $iio=mn$aoe) mnm i(vlrs; pit"pe" pitr$aoe) pit"pe" rn <r>; rn_(vlrs; rn <r>; pit"pE mxm d l mti e $aio<p" rn <>l io e a arz s mxm./>; pit"pE mnm d l mti e $iio<p" rn <>l io e a arz s mnm./>; ? > Ary ra ( []= 1 0 > 0 []= 4 1 > 0 []= 1 2 > 5 []= ac 3 > b )
15 est en la matriz $valores. 25 no est en la matriz $valores. "15" no est en la matriz $valores.
Volver al principio de la pgina Esta pgina forma parte del curso "Pginas web con PHP" disponible en http://www.mclibre.org Autor: Bartolom Sintes Marco ltima modificacin: 3 de noviembre de 2011
Esta o a est bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 3.0 Espaa.
www.mclibre.org/consultar/php/lecciones/php_matrices.html
4/4