Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> foreach
attimo
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


Mam w tablicy przykładowe dane np. komputer, myszka
  1. foreach($tablica as $wartosc) {
  2. if(strpos($wartosc,$znak) == 0) { //sprawdza czy znak jest pierwszą litera w wyrazie
  3. $reszta = strtok($wartosc,$znak); //ucina wszystko po wystapieniu ciagu $znak
  4. } else {
  5. echo 'brak wynikow';
  6. }
  7. }

Problem jest taki, że do zmiennej reszta zapisuje się rowniez drugi wyraz w tablicy dlaczego ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Bo drugie przejście pętli nadpisuje zmienną reszta? Zresztą $reszta jest lokalna dla pętli foreach (poza nią nie istnieje). Może tak:
  1. function checkCharIsFirst($tablica,$znak) {
  2. $reszta = array();
  3. foreach($tablica as $key=>$wartosc) {
  4. //sprawdza czy znak jest pierwszą literą i ucina wszystko po wystapieniu ciagu $znak i zapisuje jako element tablicy reszta
  5. if(strpos($wartosc,$znak) == 0) $reszta[$key] = strtok($wartosc,$znak);
  6.  
  7. }
  8. return $reszta;
  9. }
  10. //Zastosowanie
  11. $tablica = array('mycha','komp','bezsens');
  12. $reszta = checkCharIsFirst($tablica,'m');
  13. var_dump($reszta) // - pokazuje zawartość tablicy reszta
  14. }


Ten post edytował everth 28.07.2010, 14:00:45
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: 15.09.2025 - 17:33