Hola a todos. Estoy con una cosa me me trae de cabeza, que seguro que para vosotros es muy simple pero que a mí, un humilde casi profano en la materia, me está complicando la existencia. Os cuento.
Tengo una porción de una matriz que pertenece a un menú de Drupal (lo posteo aquí porque es PHP). Este menú me devuelve lo siguiente (la he simplificado muchísimo para postearla aquí):
Código PHP:
Ver original (
(
[#theme] => menu_link__menu_equipos
[#attributes] => Array(... más...)
[#below] => Array
(
(
[#theme] => menu_link__menu_equipos
[#attributes] => Array(... más...)
[#below] => Array
(
)
)
(
[#theme] => menu_link__equipos
[#attributes] => Array(... más...)
[#below] => Array
(
)
(
[#theme] => menu_link__menu_equipos
[#attributes] => Array()
[#below] => Array
(
)
(
[#theme] => menu_link__menu_equipos
[#attributes] => Array(.... más....)
[#below] => Array
(
)
[#contextual_links] => Array( ... más...);
[#theme_wrappers] => Array(... más...);
[#block] => Array(... más...);
)
Como veis hay en el primer nivel (o como se diga) cinco claves con su correspondiente valor que son otros arrays. Estas son [1077] [1081] [1088] [#contextual_links] [#theme_wrappers] [#block].
Las que me interesan son las que son numéricas que son las que pertenecen a los elementos del menú, o sea [1077] [1081] [1088].
Estas a su vez contienen otro elemento con clave [#below] que en unos casos tienen a su vez otros elementos de menú (fijaos en la [1077]).
Pues bien, necesito iterar sobre estos arrays, de manera que si el array con clave x contiene dentro uno #below con elementos, itere de nuevo sobre estos, hasta llegar la nivel más bajo y ahí añadir unos atributos a uno concreto.
El código que he empezado a hacer es el siguiente:
Código PHP:
foreach($matrizMenu as $elemento => $contenidoElemento){
if (isset($contenidoElemento['#below'])){
foreach($contenidoElemento as $elemento2 => $contenidoElemento2){
echo $elemento2; echo "<br>";
};
};
};
Com veis, lo que intento hacer es que si está declarada la variable #below, iteres sobre sus elementos (luego haré otro condicional que si tiene más de 1 elemento itere sobre estos, pero eso aquí de momento no lo pongo) .
El caso, que es me muestra los elementos perfectamente , pero me da el siguiente error sin llegar a cargar el resto de la página :
Código HTML:
[B]Fatal error:[/B] Cannot use object of type stdClass as array in /Trabajos/on-line/xxxxxx/sites/all/themes/xxxxxxx/templates/page.tpl.php on line 84
Si intento hacer un count de la siguiente manera, me muestra el mismo error:
¿Sabéis qué es lo qué estoy haciendo mal? o ¿se os ocurre una manera mejor de hacer esto?
Espero haberme explicado bien, y siento la extensión del mensaje, pero no podía hacerlo de una manera más breve.
un saludo y gracias de antemano.