Problem z In_Array()

0


$tablica = array();
$war='SELECT * FROM rezerwacje WHERE data_rezerwacji="2012-12-19"';
$result=mysql_query($war);
while ($row = mysql_fetch_assoc($result))
{
$tablica[] = array( 'godzina' => $row['Godzina'], 'ID' => $row['Id_rezerwacji']);
}

for ($i=9; $i<=17; $i++)
{
echo 'Godzina: '.$i;
if (in_array($i, $tablica)) echo 'Termin zajety'; else echo 'rezerwuj';
echo '
';
}

Znowu mam klopot. Kombinuje z tymi tablicami, ale nie do końca wychodzi.
W tej chwili przechowuje w tablicy godziny rezerwacji z konkretnego dnia oraz Id_Rezerwacji jakie jest przypisane w bazie.
Problem mam z in_array. Jak przeszukać teraz mam tablicę? Jeśli robię:
[php]in_array($i, $tablica['godzina'])
to mam błąd. Dodatkowo chce dodać do godzin zajętych:
[html]LINK'[/html]

0

Twoja tablica wygląda mniej więcej tak:

array(
  0 => array (
    'godzina' => 3,
    'id' => 3
  ),  
  1 => array (
    'godzina' => 3,
    'id' => 3
  ),  
  2 => array (
    'godzina' => 3,
    'id' => 3
  )
)

Natomiast in_array przeszukuje tylko jeden poziom wgłąb, znajduje więc tylko same tablice, i porównuje je do Twojej godziny.
Musisz w swojej pętli for przelecieć drugą pętlą tę tablicę i tam sprawdzać, czy godzina istnieje w tablicy.

Ale jeszcze prościej będzie po prostu w tej tablicy jako klucz używać godziny, jako wartość - id rezerwacji.
Wtedy tylko if ($tablica[$i]) i już sprawdzone, łatwiej też wyświetlić wtedy to id rezerwacji.

0

@dzek69 Dokładnie tak wygląda moja tablica. Trochę nie do końca rozumiem jak miałbym skonstruować tą 2 pętle wewnątrz pierwszej pętli for. Jak miałaby ona wyglądać aby weszła ona w głąb tablicy?

0

@dzek69 Pomogła sugestia aby klucz tablicy był godzinami. Wszystko działa. Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1