Arrays

Los arrays actualmente actúan tanto como tablas hash ( arrays asociativos ) como arrays indexados (vectores ) .

Arrays unidimensionales

PHP soporta tanto arrays escalares como asociativos . De hecho , no hay diferencias entre los dos . Se puede crear una array usando las funciones list( ) o array( ) , o se puede asignar el valor de cada elemento del array de manera explícita .

 
$a[

 
0

 
]

 
=

 
"abc"

 
;

 
$a[1

 
]

 
=

 
"def"

 
;

 
$b["foo"

 
]

 
=

 
13

 
;





También se puede crear un array simplemente añadiendo valores al array . Cuando se asigna un valor a una variable array usando corchetes vacíos , el valor se añadirá al final del array .

 
$a[

 
]

 
=

 
"hola"

 
;

 
/

 
/

 
$a[2

 
]

 
==

 
"hola

 
"

 
$a[

 
]

 
=

 
"mundo"

 
;

 
/

 
/

 
$a[3

 
]

 
==

 
"mundo

 
"





Los arrays se pueden ordenar usando las funciones asort( ) , arsort( ) , ksort( ) , rsort( ) , sort( ) , uasort( ) , usort( ) , y uksort( ) dependiendo del tipo de ordenación que se desee .

Se puede contar el número de elementos de un array usando la función count( ) .

Se puede recorrer un array usando las funciones next( ) y prev( ) . Otra forma habitual de recorrer un array es usando la función each( ) .

Arrays Multidimensionales

Los arrays multidimensionales son bastante simples actualmente . Para cada dimensión del array , se puede añadir otro valor [ clave ] al final :

 
$a[

 
1

 
]

 
=

 
$f

 
;

 
#

 
ejemplos

 
de

 
una

 
sola

 
dimensión

 
$a["foo"

 
]

 
=

 
$f

 
;

 
$a[1][0

 
]

 
=

 
$f

 
;

 
#

 
bidimensional

 
$a["foo"][2

 
]

 
=

 
$f

 
;

 
#

 
(se

 
pueden

 
mezclar

 
índices

 
numéricos

 
y

 
asociativos

 
)

 
$a[3]["bar"

 
]

 
=

 
$f

 
;

 
#

 
(se

 
pueden

 
mezclar

 
índices

 
numéricos

 
y

 
asociativos

 
)

 
$a["foo"][4]["bar"][0

 
]

 
=

 
$f

 
;

 
#

 
tetradimensional

 
!





En PHP3 no es posible referirse a arrays multidimensionales directamente dentro de cadenas . Por ejemplo , lo siguiente no tendrá el resultado deseado :

 
$a[

 
3]['bar'

 
]

 
=

 
'Bob'

 
;

 
echo

 
"Esto

 
no

 
va

 
a

 
funcionar

 
:

 
$a[3][bar]"

 
;



En PHP3, lo anterior tendrá la salida Esto no va a funcionar: Array[bar] . De todas formas, el operador de concatenación de cadenas se puede usar para solucionar esto:
 
$a[

 
3]['bar'

 
]

 
=

 
'Bob'

 
;

 
echo

 
"Esto

 
no

 
va

 
a

 
funcionar

 
:

 
"

 
.

 
$a[3][bar]

 
;





En PHP4 , sin embargo , todo el problema se puede circunvenir encerrando la referencia al array ( dentro de la cadena ) entre llaves :

 
$a[

 
3]['bar'

 
]

 
=

 
'Bob'

 
;

 
echo

 
"Esto

 
va

 
a

 
funcionar

 
:

 
{$a[3][bar]}"

 
;





Se pueden " rellenar " arrays multidimensionales de muchas formas , pero la más difícil de comprender es cómo usar el comando array( ) para arrays asociativos . Estos dos trozos de código rellenarán el array unidimensional de la misma manera :

 
#

 
Ejemplo

 
1

 
:

 
$a[

 
"color"

 
]

 
=

 
"rojo"

 
;

 
$a["sabor"

 
]

 
=

 
"dulce"

 
;

 
$a["forma"

 
]

 
=

 
"redondeada"

 
;

 
$a["nombre"

 
]

 
=

 
"manzana"

 
;

 
$a[3

 
]

 
=

 
4

 
;

 
#

 
Example

 
2

 
:

 
$a

 
=

 
array

 
(

 
"color

 
"

 
=

 
"rojo"

 
,

 
"sabor

 
"

 
=

 
"dulce"

 
,

 
"forma

 
"

 
=

 
"redondeada"

 
,

 
"nombre

 
"

 
=

 
"manzana"

 
,

 
3

 
=

 
4

 
)

 
;





La función array( ) se puede anidar para arrays multidimensionales :

 
?

 
$a

 
=

 
array(

 
"manzana

 
"

 
=

 
array

 
(

 
"color

 
"

 
=

 
"rojo"

 
,

 
"sabor

 
"

 
=

 
"dulce"

 
,

 
"forma

 
"

 
=

 
"redondeada

 
"

 
)

 
,

 
"naranja

 
"

 
=

 
array

 
(

 
"color

 
"

 
=

 
"naranja"

 
,

 
"sabor

 
"

 
=

 
"ácido"

 
,

 
"forma

 
"

 
=

 
"redondeada

 
"

 
)

 
,

 
"plátano

 
"

 
=

 
array

 
(

 
"color

 
"

 
=

 
"amarillo"

 
,

 
"sabor

 
"

 
=

 
"paste-y"

 
,

 
"forma

 
"

 
=

 
"aplatanada

 
"

 
     )

 
)

 
;

 
echo

 
$a["manzana"]["sabor"]

 
;

 
#

 
devolverá

 
"dulce

 
"

 
?