Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przeszukanie zmiennej i porównaie jej z tablicą
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Mam pewien problem. Chciałbym przeszukać zmienną która w rzeczywistości jest ciągiem znaków i porównać ten ciąg ze słowami które znajdują się w tablicy, a pod koniec podliczyć ile razy każde słowo znajdujące się w tablicy wystąpiło. Chodzi o to żeby suma jakiejkolwiek mieszanki słów znajdujących się w tablicy gdy jest mniejsza/równa 5 skrypt wykonał jedno zadanie, a gdy jest większa niż 5 skrypt wykonał drugie zadanie.
Mam coś takiego, ale nie wiem jakich funkcji użyć żeby to przerobić. sadsmiley02.gif
  1. <?php
  2. $text = 'Jakiś długi, ale to długi tekst';
  3. echo substr_count($text, 'długi');
  4. ?>
blooregard
W manualu php.net masz jak wół napisane, że f-cja substr_count zwraca Ci liczbę dopasowań.

Czyli:

  1. <?php
  2. $text = 'Jakiś długi, ale to długi tekst';
  3. $ile = substr_count($text, 'długi');
  4. if ($ile <= 5) {
  5.   //zrób to
  6. } else {
  7.  //zrob tamto
  8. }
  9. ?>
Szunaj85
Cytat
W manualu php.net masz jak wół napisane, że f-cja substr_count zwraca Ci liczbę dopasowań.
A ja jak wół to wiem. Tylko, że ja nie chcę ciągu porównać z jednym wyrazem, ale z tablicą z wyrazami. Np.
  1. <?php
  2. array('1', '2', '3', '4', '5');
  3. ?>
I taraz nie wiem jak to zrobić żeby bez względu czy wynikiem będzie:
1,3,5 czy 1,2,3 czy 1,1,1 wykonywał się jeden warunek, a jeśli:
2,2,2,2,2,2 czy 2,2,2,3,4,5 czy 2,2,4,4,5,5 ale suma tych znalezionych ciągów przekroczy 5
wykonywał się drugi warunek. Zrozumiałeś o co mi chodzi blooregard? dry.gif (W przykładzie podałem cyfry, ale chodzi mi raczej o słowa typu 'raz', 'dwa', 'trzy', ...). happy.gif
Edit:
Z porównaniem ciągu z tablicą już sobie jakoś poradziłem. Ładnie wyświetla wyniki koło siebie.
  1. <?php
  2. $text = 'Jakiś długi, ale to długi tekst';
  3. $tablica = array('Jakiś', 'długi', 'w_tekście_brak_tego_słowa');
  4. foreach ($tablica as $tablica)
  5. echo substr_count($text, $tablica)
  6. ?>
Ale nadal nie wiem jak je zsumować żeby później sprawdzić za pomocą warunku. sadsmiley02.gif Kombinuje, ale coś nie wychodzi. Jeśli macie jakieś uwagi co do tego rozwiązania napiszcie, ale tak jak wspomniałem teraz głównie chodzi mi o to jak zsumować te wartości.
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.