array_keys ti restituisce un array con le chiavi, quindi basta che poi ti metti a ciclare su quell'array per andare avanti nel parsare l'array...
ti posto un esempio di quello che faccio io:
Codice PHP:
$rooms = array_keys($data["planning"]);
for ($j = 0; $j < count($rooms); $j++)
{
$this->room = $rooms[$j];
for ($i = 1; $i <= count($data["period"]); $i++)
{
$start = mktime(0,0,0,(int)$data["period"][$i]["from"]["month"],(int)$data["period"][$i]["from"]["day"],(int)$data["period"][$i]["from"]["year"]);
$end = mktime(0,0,0,(int)$data["period"][$i]["to"]["month"],(int)$data["period"][$i]["to"]["day"],(int)$data["period"][$i]["to"]["year"]);
$today = mktime(0,0,0,(int)date("n"),(int)date("j"),(int)date("Y"));
if (($start != -1 && $end != -1) && ($start <= $end) && ($start >= $today) && ($end >= $today))
{
$days = $end - $start;
$days = $this->seconds_to_days($days);
for ($n = 0; $n <= $days; $n++)
{
$week_day = $this->week_day($start + $this->day_to_seconds($n));
$date = $this->timestamp_to_date($start + $this->day_to_seconds($n));
$rates = array_keys($data["planning"][$rooms[$j]][$week_day]);
for ($k = 0; $k < count($rates); $k++)
{
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["allocated"]))
$allocated = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["allocated"];
if ($rates[$k] == 0)
@$this->create_row($date,$rates[$k],$allocated);
else
{
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["price"]))
$price = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["price"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["single"]))
$single = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["single"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["double"]))
$double = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["double"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["triple"]))
$triple = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["triple"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["minstay"]))
$minstay = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["minstay"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["maxstay"]))
$maxstay = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["maxstay"];
if (isset($data["planning"][$rooms[$j]][$week_day][$rates[$k]]["cancellation"]))
$cancellation = $data["planning"][$rooms[$j]][$week_day][$rates[$k]]["cancellation"];
@$this->create_row($date,$rates[$k],$allocated,$price,$single,$double,$triple,$minstay,$maxstay,$cancellation);
}
}
}
}
}
}