Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] IF i tablice
tomsi
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

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


W jaki sposob mozna IF'em sprawdzic ile jest identycznych elementow w dwoch tablicach. No bo funkcjami to by chyba mozna zlaczyc dwie tablice (arrat_merge) i potem (array_count_values) wypisać ile razy sie powtarza dany element.Ok kolego zgadzam sie, ale uzywajac If'a?


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
Hazel
post
Post #2





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Nie rozumiem - po co?
Skoro masz lepszy sposób, na co Ci if?

i poczytaj o array_count_values()" title="Zobacz w manualu PHP" target="_manual, bo chyba niekoniecznie znasz zasadę jego działania.


--------------------
Go to the top of the page
+Quote Post
AxZx
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


moze takie cos:
  1. <?php
  2. $tablica = array('ala', 'ma', 'kota', 'pies');
  3. $tablica2 = array('ala', 'pies');
  4. $ile=0;
  5. foreach($tablica as $war){
  6. if(in_array($war,$tablica2)){
  7. $ile++;
  8. echo $ile;
  9. ?>


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
drPayton
post
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. // Ile tablic podasz, z tylu policzy wspólne elementy
  3. echo sizeof(array_intersect($tablica1, $tablica2));
  4. ?>


Ten post edytował drPayton 8.09.2007, 19:38:24
Go to the top of the page
+Quote Post
AxZx
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


gdzie tu masz jakis if ?


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
drPayton
post
Post #6





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Cytat
gdzie tu masz jakis if ?

To było do mnie?

Jeśli tak, i @tomsi chce jedynie żeby był tam IF, a nie chodzi po prostu o to żeby policzyć wspólne elementy tablic to ok, masz rację.
A tak na marginesie: IF'em można sprawdzić, czy spełniony jest jakiś warunek. Masz u mnie piwo, jeśli znajdziesz sposób na policzenie nim czegoś
aaevil.gif

Ten post edytował drPayton 8.09.2007, 21:00:02
Go to the top of the page
+Quote Post
AxZx
post
Post #7





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


ja mysle ze byl to skrot myslowy
chodzilo o to zeby w algorytmie sprawdzajacym ile jest powtorzen w 2 tabelach wykorzystac if.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
drPayton
post
Post #8





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Koniec zabawy w czytanie w myślach @tomsi'ego, niech sam napisze dokładnie o co chodzi

Ten post edytował drPayton 8.09.2007, 21:13:40
Go to the top of the page
+Quote Post
tomsi
post
Post #9





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

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


Koledzy widze, ze musze wkroczyc smile.gif Ciesze sie bardzo ze mi pomogliscie i jednym i drugim sposobem smile.gif A z tym IF to wiem tylko tyle co Wam napisalem. Poprostu taki byl podpunkt w jednym zadaniu i nie wiedzialem kompletnie wlasnie jak takiego IF'a uzyc i skorzystalem z tego forum, aby jakos rozwiazac ten problem smile.gif Dzieki smile.gif
Cytat(AxZx @ 8.09.2007, 20:31:04 ) *
moze takie cos:
  1. <?php$tablica = array('ala', 'ma', 'kota', 'pies');$tablica2 = array('ala', 'pies');$ile=0;foreach($tablica as $war){ if(in_array($war,$tablica2)){ $ile++;echo $ile;?>
a czy konieczne jest tutaj uzycie foreach i po co jest uzyte $ile++?

Ten post edytował tomsi 8.09.2007, 23:52:43


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Foreach jest po to aby zrobić pętlę na pierwszej tablicy (w sumie powinno się ją wykonywać na tablicy zawierającej więcej elementów, niekoniecznie musi to być pierwsza tablica). $ile++ zwiększa wartość licznika $ile, który wskazuje ile elementów wspólnych mają obie tablice (jeśli aktualny element występuje w tablicy drugiej to zwiększ wartość licznika o 1 czyli $ile++).
Go to the top of the page
+Quote Post
AxZx
post
Post #11





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


Cytat
w sumie powinno się ją wykonywać na tablicy zawierającej więcej elementów


nie koniecznie, moze byc rowniez na mniejszej ilosci.
algorytm ma sprawdzic ile jest powtorzen w pierwszej i drugiej tablicy, wiec skoro nie ma slowa z drugiej w pierwszej tzn ze nie ma powtorzenia. powiedzialbym nawet zeby wybierac tablice z mniejsza iloscia - wtedy petla foreach mniej razy sie wykona i nie bedzie sprawdzane nie potrzebnie wyrazow ktorych nie ma w tablicy z mniejsza iloscia:)


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No tak, racja, mój błąd smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 01:07