Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]sprawdzenie ilości identycznych zmienncyh
kubax33
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


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źć...

Ten post edytował kubax33 23.08.2012, 18:17:10
Go to the top of the page
+Quote Post
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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 (IMG:style_emoticons/default/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. ?>


Ten post edytował abort 23.08.2012, 18:23:10
Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


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...
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. $arr = array();
  2. $arr[] = $zmienna1;
  3. $arr[] = $zmienna2;
  4. // itd.
  5. echo count ($arr) - count (array_unique( $arr, SORT_STRING ));
Go to the top of the page
+Quote Post
abort
post
Post #5





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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.
(IMG:style_emoticons/default/smile.gif)

P.S.
Pisane na kolanie, mogą być błędy.
Go to the top of the page
+Quote Post
gorden
post
Post #6





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


@abort
ja bym dodał jeszcze do tego isset, bo przypuszczam, zmienne będą się tworzyć same, obniżając wydajność programu
Go to the top of the page
+Quote Post
abort
post
Post #7





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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.
Go to the top of the page
+Quote Post
kubax33
post
Post #8





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


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

Ten post edytował kubax33 23.08.2012, 20:27:11
Go to the top of the page
+Quote Post
abort
post
Post #9





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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ść. (IMG:style_emoticons/default/smile.gif)
Tak czy inaczej - miłego kodowania dalej.
Go to the top of the page
+Quote Post

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: 14.09.2025 - 17:51