Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Porównywanie stringów
Forum PHP.pl > Forum > Przedszkole
szczurek
Witam, nie wiem czy ja jestem ślepy czy rzeczywiście nie ma czegoś takiego w manualu. Chodzi mi o porównywanie jednego stringa z tablicą stringów. Czyli mam "test" i tablicę array(testy, testtowanie, test);
Chciałbym sprawdzać czy w tej tablicy występuje taki ciąg.

Po co mi to potrzebne. Wymyśliłem sobie że napiszę klasę do obsługi bazy danych dla jednej aplikacji. Do każdej tabeli dopisuje w konstruktorze listę pól i później korzystam z nich. Przy operacji update nie wykorzystuję pierwszego pola bo mi się nigdy nie zmienia a resztę pobiera sobie funkcja z tablicy zdefiniowanej w konstruktorze. I teraz w jednej z klas potrzebuję wykluczyć jedno z pól. Mogę napisać dodatkową funkcję ale nie po to sobie taką ładną klasę napisałem i z niej dziedziczę żeby teraz wpisywać pole=wartość
Chcę dorobić dodatkowy parametr który będzie tablicą pól nie przeznaczonych do aktualizacji.

Wartości dopisuję w pętli foreach;

  1. <?php
  2. $aPolaWartosci=array();
  3.  $i=0;
  4.  foreach($this->aPola as $sPole=>$sWartosc)
  5.  {
  6. if($i!=0)
  7. {
  8. $this->aPola[$sPole]=$aWartosci[$i-1];
  9. }
  10.  $i++;
  11.  }
  12. ?>


$sPole to nazwa pola w bazie danych. I teraz chciałbym żeby jeśli w tablicy wyklucz znajduje się pole takie jak string w danym przebiegu pętli to zostaje wyrzucone i nie bardzo wiem jak to zrealizować.

Wymyśliłem:
  1. <?php
  2. $i=0;
  3.  foreach($this->aPola as $sPole=>$sWartosc)
  4.  {
  5. if($i!=0)
  6. {
  7. foreach($aWykucz as $sWyklucz)
  8. {
  9. $this->aPola[$sPole]=$aWartosci[$i-1];
  10. if($sPole==$sWyklucz)
  11. {
  12. $sPole=null;
  13.  
  14. }
  15. }
  16.  
  17. }
  18.  $i++;
  19.  }
  20. ?>


No ale coś mi nie wyszło. Dalej realizowane jest to tak że zbija te pary NazwaPola, wartość i tworzy z nich string UPDATE ...SET NazwaPola=wartosc... itd. No i nie wiem jak mam dokonać tego żeby nie było tych nazw pól które podam w tablicy wyklucz.

Mam nadzieję, że napisałem to w miarę zrozumiale.
szczurek
Więc jednak jestem ślepy. A siedziałem i kopałem, tylko cholera z drugiej strony manuala chyba. Pominę już fakt swoich kombinacji kiedy miałem rozwiązanie pod nosem. Oczywiście funkcja właśnie działa tak jak to sobie wymarzyłem.
Dziękuję smile.gif
DeyV
Swoją drogą - napisanie takiej funkcji jest bardzo proste.
Nie do końca wiem, dlaczego miałeś z tym problem.

  1. <?php
  2. function myInArray( $sText, $aTab ){
  3. foreach( $aTab as $sValue ) {
  4. if( $sValue == $sText ) {
  5.  return true;
  6. }
  7. return false;
  8. }
  9. ?>
szczurek
Pewnie dlatego że się za to zabrałem za to od złej strony i coś za dużo grzebałem w już istniejącej funkcji zamiast napisać sobie coś czego będę mógł tam użyć.

Czasem łapie się na takiej rzeczy, że mi później wstyd smile.gif
SongoQ
Przenosze na Przedszkole
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.