Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] sprawdzenie if'em w foreach
kombox
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 6.11.2008

Ostrzeżenie: (10%)
X----


Witam mam pewien problem chce sprawdzić czy jest wartość w tablicy jeśli nie to info mam taki kod

  1. <?php foreach($this->filtr as $a => $b):?>
  2.  
  3. <?php if(isset($b)) :?>
  4. "Nic nie wybrałeś"
  5. <?php else: ?>
  6. <?php print_r($a); ?>
  7. <?php endif;?>
  8.  
  9. <?php endforeach ;?>
  10.  
  11.  

i wszystko jest ok ale to "Nic nie wybrałeś wyświetla mi 8x czyli tyle ile mam w tablicy rekordów (IMG:style_emoticons/default/sad.gif)
jak to zrobić żeby info było 1x
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Przykład
  1. <?php
  2. $array = array(0 => 'wartość 1', 1 => 'wartość 2', 3 => 'wartość 3', 4 => null, 5 => 'wartość 5');
  3. foreach($array as $key => $value) {
  4. if(!isset($array[$key]) {
  5. echo 'KONIEC';
  6. break;
  7. } else {
  8. echo '1<br/>';
  9. }
  10. }
Twój skrypt działa prawidłowo, czyli tak samo jak powyższy przykład. Chodzi o to, że po tablic $array poruszamy się do momentu, gdy napotkamy pustą wartość. Kiedy to się stanie przerywamy działanie pętli foreach, ale do tego czasu w każdej iteracji wyświetlamy 1<br/>. Powyższy przykład wyświetli:
Kod
1
1
1
KONIEC
Ponieważ dopiero czwarty element tablicy nie ma żadnej wartości. U Ciebie jest tak samo z tą różnicą, że już drugi element tablicy $this->filtr nie ma żadnej wartości. W poprzednich postach przedstawiłem Ci rozwiązanie, które łatwo zmodyfikować i przystosować do Twoich konkretnych potrzeb. Wystarczy pomyśleć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 07:28