No se crea una matriz 2D en PHP, no en el sentido tradicional.
Las sugerencias anteriores sobre $a = array(array());
, de hecho, la simple creación de la siguiente matriz:
$a = array(
0 => array()
);
Por lo tanto, $a[0][0] = 'test';
daría como resultado lo siguiente:
$a = array(
0 => array(
0 => 'test'
)
);
A primera vista, parece que funciona , pero de hecho, esto todavía no es una matriz 2d. Cuando intenta utilizar la 2da fila (índice 1), en este punto, PHP lanzaría un aviso. Por ejemplo:
$a[1][0] = 'test2';
Esto se debe a $a[1]
no contiene nada (recordemos que array(array())
simple creación de una matriz en el índice 0?).
Para que funcione, necesita volver a hacer $a[1] = array();
, o si desea evitar los índices que puede hacer, $a[] = array();
.
Ejemplo
$a = array(); // array of columns
for($c=0; $c<5; $c++){
$a[$c] = array(); // array of cells for column $c
for($r=0; $r<3; $r++){
$a[$c][$r] = rand();
}
}
El código anterior crea un 5x3 "matriz 2D" de números aleatorios.
un vacío 2 matriz bidimensional ... '$ array = array (array());' – JamesHalsall
De esta manera parece correcta, si está seguro de que desea rellenar la matriz con una cadena vacía n * m veces. –
No sé cuál es el trato con los votos a favor. Miré y no pude encontrar la respuesta, entonces lo pregunté. Disculpame por tratar de aprender a usar php. – Joshua