Problema con la manipulación de arrays asociativos

Necesito que me ayudes a entender un poco mejor el funcionamiento de los arrays asociativos. Te comento un poco cual es mi problema:
Tengo una clase PHP que bajé de Internet donde se define un array asociativo con sus respectivas "clave->valor" pero llega un momento donde no se define ninguna clave en el array y solamente se define su valor. Entonces mi pregunta es ¿cómo referencio yo a ese valor si no tengo una clave asociada a él? Ese valor por cierto es a su vez un nuevo array.
A continuación te transcribo parte del código para que me entiendas mejor:
**************************************
...
ITEMS =>
array
(
OFFSET_LEFT => 0,
OFFSET_TOP => 0,
SHADOW_WIDTH => 150,
array
(
OFFSET_LEFT => 2,
OFFSET_TOP => 18,
TITLE => 'Empresas',
WIDTH => 150,
),
);
...
**************************************
Como se ve ahí, el array ITEMS tiene cuatro elementos, donde el último de ellos es otro array. Pero como este último no tiene índice, entonces no puedo acceder a él de ninguna forma, y si lo intento con ITEMS[x]['TITLE'] o ITEMS[x]['WIDTH'] o ITEMS[x]['OFFSET_LEFT'], etc donde por es cualquier indice numérico desde 0 hasta .. No me da bola.
Entonces, ¿existe alguna manera de hacer referencia al array que forma parte del array 'items'?

2 Respuestas

Respuesta
1
Me temo que no has asignado ninguna clave al array embebido en la variable ITEM
Prueba con esta estructura de datos...
$items= array (
OFFSET_LEFT => 0,
OFFSET_TOP => 0,
SHADOW_WIDTH => 150,
DATA => array (
OFFSET_LEFT => 2,
OFFSET_TOP => 18,
TITLE => 'Empresas',
WIDTH => 150,
),
);
print_r($items);
print ($items['DATA']['TITLE']);
Respuesta
1
Algo debes estar haciendo mal, porque la forma de acceder ya la has mencionado.
Te pongo algunos ejemplos:
$ITEMS[0] = Array
$ITEMS[1] =
$ITEMS["SHADOW_WIDTH"] = 150
$ITEMS[SHADOW_WIDTH] = 150
$ITEMS[0]["TITLE"] = Empresas
$ITEMS[0][TITLE] = Empresas
Como ves, para acceder a cualquier elemento usas el nombre. Pero para acceder al array que está dentro usas el indice [0].
Pruebalo y me comentas, porque según las pruebas que ya has realizado te debería salir.
Para comprobarlo si quieres puedes usar el código que he usado yo:
<html><body>
<?php
$ITEMS =
array
(
OFFSET_LEFT => 0,
OFFSET_TOP => 0,
SHADOW_WIDTH => 150,
array
(
OFFSET_LEFT => 2,
OFFSET_TOP => 18,
TITLE => 'Empresas',
WIDTH => 150,
)
);
echo '<br> $ITEMS[0] = '. $ITEMS[0] ;
echo '<br> $ITEMS[1] = '. $ITEMS[1] ;
echo '<br> $ITEMS["SHADOW_WIDTH"] = '. $ITEMS["SHADOW_WIDTH"] ;
echo '<br> $ITEMS[SHADOW_WIDTH] = '. $ITEMS[SHADOW_WIDTH] ;
echo '<br> $ITEMS[0]["TITLE"] = '. $ITEMS[0]["TITLE"] ;
echo '<br> $ITEMS[0][TITLE] = '. $ITEMS[0][TITLE] ;
?>
</body></html>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas