En PHP los arrays multidimensionales se crean con arrays dentro de arrays:
function muestraTabla($tabla) {
echo "<pre>";
print_r($tabla);
echo "</pre>";
}
$m=array(
array(1,2),
array(3,4),
);
muestraTabla($m);
for($i=0;$i<count($m);$i++){
for ($j=0;$j<count($m[$i]);$j++){
echo $m[$i][$j]."<br/>";
}
}
foreach ($m as $n){
foreach ($n as $el){
echo $el."<br/>";
}
}
Podemos tener las dimensiones que queramos:
$m = array(
array(
array(0, 1),
array(2, 3)
),
array(
array(4, 5),
array(6, 7)
),
array(
array(8, 9),
array(10, 11)
),
);
muestraTabla($m);
for ($i = 0; $i < count($m); $i++) {
for ($j = 0; $j < count($m[$i]); $j++) {
for ($k = 0; $k < count($m[$i][$j]); $k++) {
echo $m[$i][$j][$k] . "<br/>";
}
}
}
foreach ($m as $n) {
foreach ($n as $el) {
foreach ($el as $e) {
echo $e . "<br/>";
}
}
}
Lo mismo que usamos para recorrer lo podemos usar para generar:
for ($i = 0; $i < 10; $i++) {
for ($j = 0; $j < 10; $j++) {
$m[$i][$j]=$j+$i*10;
}
}
muestraTabla($m);
Un array puede ser cualquier combinación de valores, asociativos, arrays dentro de arrays dentro de arrays….
$tablaLoca = array(
"juan",
"pepe" => array(1, 2, 3),
array(
array("a","b"),
"w"
),
5,
"ppp"=>array(
"q"=>3,
"w"=>array(1,2,array(7,8))
)
);
muestraTabla($tablaLoca);
Si quisiéramos acceder a los valores de una tabla como la anterior necesitaríamos una función recursiva:
function valores($var){
$res="";
if (is_array($var)){
foreach($var as $v){
$res.=valores($v);
}
}
else{
$res=$var.",";
}
return $res;
}
echo valores($tablaLoca);