Está en la página 1de 4

16/01/13

Matrices. PHP. Bartolom Sintes Marco

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 ) )

Volver al principio de la pgina

Crear una matriz


Una matriz se puede crear definiendo algn valor de la matriz
<pp ?h $arz5 =2; mti[] 5 pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= 2 5 > 5 )

o utilizando la funcin a r y $ n i e = $ a o , . . : ra(idc > vlr .)


<pp ?h $arz=ary 5= 2) mti ra( > 5; pit"pe" pitr$arz;pit"pe" rn <r>; rn_(mti) rn <r>; ? > Ary ra ( []= 2 5 > 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

Matrices. PHP. Bartolom Sintes Marco

$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>; ? >

Las matrices en PHP pueden ser multidimensionales:


<pp ?h $arz5[]=2; mti[]3 5 $arz"ers]1 ="er A; mti[lta"[] lta " 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 ) )

Volver al principio de la pgina

Imprimir todos los valores de una matriz: la funcin print_r()


La funcin p i t r $ a i b e [ $ e o v r )escribe la variable $variable de forma legible, incluso aunque se trate de una matriz. rn_(vral , dvle] Aunque print_r() genera espacios y saltos de lnea que pueden verse en el cdigo fuente de la pgina, print_r() no genera etiquetas html, por lo que el navegador no muestra esos espacios y saltos de lnea.
<pp ?h $arz=ary'obe = 'eio,'plio'= 'oeo) mti ra(nmr' > Ppt' aelds > Cnj'; pitr$arz; rn_(mti) ? >

Array ( [nombre] => Pepito [apellidos] => Conejo )

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/>; ? >

La matriz es Array ( [nombre] => Pepito [apellidos] => Conejo )

<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/>; ? >

Array ( [nombre] => Pepito [apellidos] => Conejo ) La matriz es 1

<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/>; ? >

Array ( [nombre] => Pepito [apellidos] => Conejo ) La matriz es 1

Volver al principio de la pgina

Borrar una matriz o elementos de una matriz


La funcin u s t )permite borrar una matriz o elementos de una matriz . ne(
Ary ra ( []= 2 5 > 5

<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

Matrices. PHP. Bartolom Sintes Marco


[]= 2 5 > 5 [1 = ngtv -] > eaio [eo1 = cno nmr ] > ic )

$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>; ? >

Ary ra ( [1 = ngtv -] > eaio [eo1 = cno nmr ] > ic )

<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 )

Ntc: Udfndvral:mti i pub.h o ln 8 oie neie aibe arz n reapp n ie

Volver al principio de la pgina

Contar elementos de una matriz


La funcin c u t $ a r z permite contar los elementos de una matriz. on(mti)
<pp ?h $arz3 =2; mti[] 5 $arz4 =3; mti[] 0 $arz5 =3; mti[] 5 $arz"er" ="er A; mti[lta] 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>; ? >

La matriz tiene 4 elementos.


Ary ra ( []= 2 3 > 5 []= 3 4 > 0 []= 3 5 > 5 [er]= ltaA lta > er )

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 "

Matrices. PHP. Bartolom Sintes Marco


Ary ra ( []= Ary 5 > ra ( []= 2 3 > 5 []= 3 4 > 0 []= 3 5 > 5 ) [er]= Ary lta > ra ( []= ltaA 1 > er ) )

$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>; ? >

Volver al principio de la pgina

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 )

El mximo de la matriz es 40. El mnimo de la matriz es -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 )

El mximo de la matriz es 40. El mnimo de la matriz es abc.

Volver al principio de la pgina

Encontrar un valor en una matriz


La funcin booleana i _ r a ( e e e t , $ a r z , $ i o ) devuelve T U si el elemento se encuentra en la matriz. Si el argumento booleano nary$lmno mti[ tp] RE $ i oes T U , i _ r a ( comprueba adems que los tipos coincidan. tp RE nary)
<pp ?h $aoe =ary(0 4,1,-) vlrs ra 1, 0 5 1; pit"pe" pitr$aoe) pit"pe" rn <r>; rn_(vlrs; rn <r>; i (nary1,$aoe) { f i_ra(5 vlrs) pit"p1 et e l mti \vlrs<p" rn <>5 s n a arz $aoe./>; } i (i_ra(5 $aoe) { f !nary2, vlrs) pit"p2 n et e l mti \vlrs<p" rn <>5 o s n a arz $aoe./>; } i (i_ra(1" $aoe,TU) { f !nary"5, vlrs RE) pit"p\1\ n et e l mti \vlrs<p" rn <>"5" o s n a arz $aoe./>; } ? >

Ary ra ( []= 1 0 > 0 []= 4 1 > 0 []= 1 2 > 5 []= 3 > 1 )

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

También podría gustarte