Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2010, 16:13
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Alguna forma rápida de acceder a una pos. array?

Buenas,

¿Sabéis si existe alguna forma rápida de acceder a una posición determinada de un array?

Ej. imaginad que tenéis una estructura gigantesca

padre
---padre
---hijo---padre---hijo
---

Llega un momento que se hace insostenible tener que poner como base todo el array $arreglo[0]['hijo']...

Fragmento de código real utilizado para recorrer el árbol del array...
Código PHP:
Ver original
  1. for ($i = 0; $i < $num_ligas; $i++) {
  2.         $IDevento=$arreglo[0]['hijo'][$i]['atributos']['DBID'];
  3.         $IDcompeticion=$arreglo[0]['hijo'][$i]['atributos']['LID'];
  4.         $evento=mysql_real_escape_string($arreglo[0]['hijo'][$i]['atributos']['N']);
  5.         $fecha=$arreglo[0]['hijo'][$i]['atributos']['D'];
  6.         $fecha=str_replace("/", "-", $fecha);
  7.         $fecha = date("Y-m-d H:i:s", strtotime($fecha));
  8.         $num_mercados=count($arreglo[0]['hijo'][$i]['hijo']); // Cuento el numero de mercados
  9.  
  10.         for ($j = 0; $j < $num_mercados; $j++) {
  11.             $mercado=mysql_real_escape_string($arreglo[0]['hijo'][$i]['hijo'][$j]['atributos']['N']);
  12.             $IDmercado=$arreglo[0]['hijo'][$i]['hijo'][$j]['atributos']['DBID'];
  13.             $EID=$arreglo[0]['hijo'][$i]['hijo'][$j]['atributos']['EID']; // este debe coincidir con el DBID
  14.             $IDtipomercado=$arreglo[0]['hijo'][$i]['hijo'][$j]['atributos']['GT'];
  15.             $num_pronosticos=count($arreglo[0]['hijo'][$i]['hijo'][$j]['hijo']); // Cuento el numero de pronosticos
  16.            
  17.             for ($k = 0; $k < $num_pronosticos; $k++) {
  18.                 $pronostico=mysql_real_escape_string($arreglo[0]['hijo'][$i]['hijo'][$j]['hijo'][$k]['atributos']['N']);
  19.                 $IDpronostico=$arreglo[0]['hijo'][$i]['hijo'][$j]['hijo'][$k]['atributos']['DBID'];
  20.                 $cuota=$arreglo[0]['hijo'][$i]['hijo'][$j]['hijo'][$k]['atributos']['O'];


¿Existe alguna forma de acceder más rápidamente en los arrays?

Muchas gracias de antemano!