Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foreach i indeks numeryczny
Forum PHP.pl > Forum > Przedszkole
dulek000
  1. <?php
  2. $i = 0;
  3. foreach ($fields as $category => $items) {
  4. if ($i == 0) {
  5. doSomething();
  6. }
  7. doSomethingElse();
  8. $i++;
  9. }
  10. ?>
Zastanawiam się, czy da radę zrobić to bardziej elegancko - bez zmiennej $i, czy też może muszę koniecznie użyć pętli for. Jakieś pomysły?
itsme
tak da rady lepiej to zrobić
  1. <?php
  2. doSomething();
  3. foreach ($fields as $category => $items) {
  4. doSomethingElse();
  5. }
  6. ?>
webdice
  1. <?php
  2. $array = array (0 => 'value0', 1 => 'value1', 2 => 'value2', 3 => 'value3', 4 => 'value4');
  3.  
  4. foreach ($array as $key => $walue)
  5. {
  6. if ($key == 0)
  7. {
  8. doSomething ();
  9. }
  10.  
  11. doSomethingElse ();
  12. }
  13. ?>


Oczywiście jeśli indexami są cyfry i zaczynają się od zera.
dulek000
itsme: Nie o to mi chodzi. doSomething musi być w pętli - przedstawiłem bardzo schematycznie. Można powiedzieć, że całość wygląda tak:
  1. <?php
  2. $i = 0;
  3. foreach ($fields as $category => $items) {
  4. doSomeCalculations($category);
  5. if ($i == 0) {
  6. doSomething();
  7. }
  8. doSomethingElse($items);
  9. $i++;
  10. }
  11. ?>

webdicepl: Nie bez powodu mam tam $category - używam go i nie jest on indeksem numerycznym.
itsme
ale przeciez $i tylko raz będzie miało wartość zerową :-)
dulek000
Ale muszę to wywołać pomiędzy funkcjami w foreachu. Najpierw wyświetlam kategorię, jeśli to pierwsza kategoria to po niej wyświetlam jeszcze avatar, a potem pola kategorii.
itsme
moze najpierw powiedz co jest w tablicy questionmark.gif?
dulek000
  1. <?php
  2. 'category 1' => array(
  3. 'item1',
  4. 'item2'
  5. ),
  6. 'category2' => array(
  7. 'item3',
  8. 'item4'
  9. )
  10. )
  11. ?>
itsme
ok a teraz powiedz co chcesz osiagnac
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.