Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] tablice, in_array ze zdefiniowanym kluczem
Forum PHP.pl > Forum > Przedszkole
Wieviór
Robię "CAPTHA" przy rejestracji, na zasadzie pytania i odpowiedzi. Pytań jest kilka, zapisuje je w hidden input. Potem jest input z odpowiedzią. Jako, że odpowiedzi mogą być różne, to muszę to uwzględnić.

Wymyśliłem coś takiego:

  1. <?php
  2. $odpowiedzi = array(
  3. 1 => 'Fernando Torres',
  4. 1 => 'Torres',
  5. 2 => '2005',
  6. 2 => '05',
  7. 3 => 'Liverpool',
  8. 3 => 'Liverpool FC',
  9. 3 => 'FC Liverpool'
  10. );
  11.  
  12. if (in_array($_POST['register_podana_odpowiedz'], $odpowiedzi) ) { echo 'no udało się!'; }
  13. ?>


No i ładnie, tyle tylko, że chciałbym jakby nadać funkcji in_array, żeby szukała tylko dla tej pierwszej wartości równej numerowi pytania... I nie wiem jak to wymyślić jakoś prosto, bo nie chciałbym tworzyć tablicy w tablicy.
l0ud
Wieviór, to nie ma jak działać. Jedna tablica nie może mieć kilku takich samych indeksów o innych wartościach. Najrozsądniejszym wyjściem będzie jednak użycie tablicy dwuwymiarowej.
AxZx
  1. <?php
  2. if($tablica[$numer_pytania] == 'odpowiedz'){
  3. echo 'okej'
  4. }
  5. ?>

?
l0ud
  1. <?php
  2.  
  3. $odpowiedzi = array(
  4. array('Fernando Torres', 'Torres'),
  5. array('2005', '05'),
  6. array('Liverpool', 'Liverpool FC', 'FC Liverpool')
  7. );
  8.  
  9. if (isset($odpowiedzi[$_POST['register_pytanie']]) && in_array($_POST['register_podana_odpowiedz'], $odpowiedzi[$_POST['register_pytanie']])) { echo 'no udało się!'; }
  10.  
  11. ?>
AxZx
a gdzie masz indeks w tej tablicy $odpowiedzi?
  1. <?php
  2. $odpowiedzi = array(
  3. 1 => array('Fernando Torres', 'Torres'),
  4. 2 => array('2005', '05'),
  5. 3 => array('Liverpool', 'Liverpool FC', 'FC Liverpool')
  6. );
  7. ?>
l0ud
Cytat
a gdzie masz indeks w tej tablicy $odpowiedzi?


Indeksy są przypisywane domyślnie.
Xniver
Tyle ,że od 0 ,a nie od 1.
Wieviór
Czyli jednak dwuwymiarowa... dzięki chłopaki ;]
l0ud
No racja, ale nikt tu nie stwierdził, że muszą się od 1 zaczynać winksmiley.jpg I tak pewnie autor tematu w inny sposób będzie budował tą tablicę - to był tylko przykład.
AxZx
indeksy sa ustawiane automatycznie (od 0 wzwyz), ale nie wziales pod uwage ze numery pytan nie koniecznie musza byc pokolei od 0 wzwyz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.