Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sprawdzenie ilości identycznych zmienncyh
Forum PHP.pl > Forum > Przedszkole
kubax33
Jak sprawdzić ile jest identycznych zmiennych "TAK":
  1. $zmienna1 = "TAK";
  2. $zmienna2 = "TAK";
  3. $zmienna3 = "Nie";
  4. $zmienna4 = "Nie";
  5. $zmienna5 = "Nie";


wynikiem powinno być echo: są 2 identyczne zmienne "TAK".

Wiem że to nic trudnego ale ciężko mi coś znaleźć...
abort
A nie możesz ich wrzucić do tablicy i za pomocą foreach sprawdzić? Byłoby prościej. Bo dla trzech zmiennych nadmiar kodu to nie problem, ale wraz z ilością zmiennych problem rośnie smile.gif

EDIT: A jak się nie da w tablicach, to możesz jeszcze spróbować takiej konstrukcji:

  1. <?php
  2.  
  3. $a="zmienna";
  4. $zmienna1 = "a";
  5. $zmienna2 = "b";
  6. $zmienna3 = "c";
  7.  
  8. for ($i=1; $i<=3; $i++) {
  9. echo ${$a.$i} . "<br>\n";
  10. }
  11.  
  12. ?>
Szymciosek
Zadziałaj z tablicą, załaduj po kolei wszystkie zmienne do tablicy np

array("TAK", "NIE", "NIE", "TAK", "TAK", "TAK");

później możesz zrobić jakąś zmienną typu $ile = 0;, która w pętli przejdzie inkrementację i na koniec dostaniesz wynik ile masz TAK, zrobić nawet wtedy łatwo możesz wiadomość o tym ile było ogólnie odpowiedzi, jaki był procent odpowiedzi TAK itd...
darko
  1. $arr = array();
  2. $arr[] = $zmienna1;
  3. $arr[] = $zmienna2;
  4. // itd.
  5. echo count ($arr) - count (array_unique( $arr, SORT_STRING ));
abort
Jak już robić gotowce, to:
  1. $common = "zmienna";
  2. $begin = 1;
  3. $end = 100;
  4. $count = 0;
  5. $search = "TAK";
  6. for ($i=$begin, $i<=$end, $i++) {
  7. if (${$common . $i} == $search) $count++;
  8. }

I mamy policzone wystąpienie ciągu "TAK" w zmiennych $zmienna1, $zmienna2 ... $zmienna100.
smile.gif

P.S.
Pisane na kolanie, mogą być błędy.
gorden
@abort
ja bym dodał jeszcze do tego isset, bo przypuszczam, zmienne będą się tworzyć same, obniżając wydajność programu
abort
No właśnie że chyba nie... na kodzie z mojego pierwszego przykładu w tym wątku wykonałem eksperyment: zmieniłem zakres do 10, a poza pętlą dałem var_dump ($zmienna5). Otrzymałem NULL.
kubax33
Nie wiem ale po wielu poszukiwaniach udalo mi się znaleźć najszybszy sposób choć może nie najlepszy no ale... Przykładów Panów nie udało mi się wykorzystać w praktyce:

  1. preg_match_all("/(tak)/", ''tak, nie, tak, nie'', $takwystepuje);
  2. echo 'Tak występuje '.count($takwystepuje[1]).' razy';


dziekuje za pomoc
abort
Heh. Najpierw było pięć zmiennych. Teraz jest jeden ciąg znaków. Który wziął się (patrząc na posty) chyba z nieba.
No ale cóż, zadawanie dobrych pytań to także umiejętność. smile.gif
Tak czy inaczej - miłego kodowania dalej.
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.