Foros del Web » Programando para Internet » PHP »

¿como modifico la dimension de un arreglo?

Estas en el tema de ¿como modifico la dimension de un arreglo? en el foro de PHP en Foros del Web. En una pagina lei esto PHP permite el uso de arrays con dimensión superior a dos. Para modificar la dimensión del array basta con ir ...
  #1 (permalink)  
Antiguo 15/06/2012, 07:30
 
Fecha de Ingreso: octubre-2006
Mensajes: 227
Antigüedad: 18 años, 1 mes
Puntos: 3
¿como modifico la dimension de un arreglo?

En una pagina lei esto

PHP permite el uso de arrays con dimensión superior a dos. Para modificar la dimensión del array basta con ir añadiendo nuevos índices.

$a[x][y][z]=valor;

asignaría un valor al elemento de índices x, y y z de un array tridimensional y

$a[x][y][z][w]=valor;

Por lo que intente esto

Código PHP:
$miarreglo["uno"] = 5;
$miarreglo["uno"][1] = 20;
$miarreglo["uno"][2] = 31;
$miarreglo["uno"][3] = 65;
//echo $miarreglo["uno"];
echo "<br />"
me sale un error diciendo que no puedo utilizar array escalares

Asi que hice esto otro
Código PHP:
$miarreglo["uno"] = "palabra uno";
$miarreglo["uno"][1] = "palabra dos";
$miarreglo["uno"][2] = "palabra tres";
$miarreglo["uno"][3] = "palabra cuatro";
echo 
$miarreglo["uno"];
echo 
"<br />";
echo 
$miarreglo["uno"][2]; 
Pero este imprime lo siguiente:

ppppbra uno
p

Como modifico la dimensin y leo, este tipo arrays, o no se puede?
  #2 (permalink)  
Antiguo 15/06/2012, 09:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: ¿como modifico la dimension de un arreglo?

Si se puede, pero para comenzar comenzar a tratar un valor como array debes convertirlo primero.
Código PHP:
$miarreglo["uno"] = "palabra uno";

// type-casting
$miarreglo["uno"] = (array) $miarreglo["uno"];

$miarreglo["uno"][1] = "palabra dos";
$miarreglo["uno"][2] = "palabra tres";
$miarreglo["uno"][3] = "palabra cuatro"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/06/2012, 09:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: ¿como modifico la dimension de un arreglo?

lo que no puedes es tratar de tener un valor escalar y un array en la misma dimensión, o es un array, o un valor escalar
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 18/06/2012, 11:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 227
Antigüedad: 18 años, 1 mes
Puntos: 3
Respuesta: ¿como modifico la dimension de un arreglo?

muchas gracias pateketrueke y maycolalvarez, efectivamente funciona.

No me queda claro porque php considera el tipo de dato como, pues yo pensaba que al colocar $miarreglo["uno"], lo concideraba array sin importar e contenido.

No se, a lo mejor yo me estoy liando solo.
  #5 (permalink)  
Antiguo 18/06/2012, 12:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: ¿como modifico la dimension de un arreglo?

Explicación:
Código PHP:
$miarreglo = array(); // hasta aquí tenemos un array

$miarreglo["uno"] = "dos"// aquí tenemos un valor "dos" bajo el índice "uno" del array, es un string 
De hecho si te confundes solo, $miarreglo efectivamente es un array, mas no así el elemento que crees es un array también.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 18/06/2012, 16:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 227
Antigüedad: 18 años, 1 mes
Puntos: 3
Respuesta: ¿como modifico la dimension de un arreglo?

Cita:
Iniciado por pateketrueke Ver Mensaje
Explicación:
Código PHP:
$miarreglo = array(); // hasta aquí tenemos un array

$miarreglo["uno"] = "dos"// aquí tenemos un valor "dos" bajo el índice "uno" del array, es un string 
De hecho si te confundes solo, $miarreglo efectivamente es un array, mas no así el elemento que crees es un array también.
Ok, entiendo, mucha gracias amigo.

Etiquetas: dimension
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.