Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: porownianie tablicy i zmiennej
Forum PHP.pl > Forum > Przedszkole
webspy
WItam, może ktoś mi pomoże.

Chce porównać czy dana wysłana z formularza metodą GET lub też POST jest taka sama jak w tablicy.
A mianowicie konkretnie co chce zrobić to usunąć tą linijkę tekstu w pliku która będzie taka sama jak w formularzu wysłana jako zmienna $kat.

Dałoby się coś z tym zrobić?? jestem początkujący w tych sprawach więc proszę o wyrozumiałosć.
Z góry dziękuję i pozdrawiam.

Kod
<?
$lista_gg = file("lista_gg.txt");
for ($i=0; $i<count($lista_gg); $i++)
{
if ($lista_gg[$i] == $_GET['kat']){
echo "tak";
}
else {
echo "nie";
}

     }
?>
sniezny_wilk
hmm, a może by spróbować najpierw pobrać elementy którymi się różnią czyli array_diff" title="Zobacz w manualu PHP" target="_manual a potem zliczyć ile tablica wynikowa ma rekordów, czyli count" title="Zobacz w manualu PHP" target="_manual, jeśli bo zliczeniu dostaniemy 0 to znaczy, że były takie same.. nie testowałem tego rozwiązania..
nevt
brakuje ci trim() - elementy tablicy wczytanej funkcją file() mają dołączony znak końca linii - dlatego twoje porównanie nie działa, tak powinno działać:
  1. <?php
  2. $lista_gg = file('lista_gg.txt');
  3. $kat = (isset($_GET['kat']) ? $_GET['kat'] : '');
  4. foreach($lista_gg as $wartosc)
  5. if (trim($wartosc) == $kat)
  6. echo 'tak';
  7. else
  8. echo 'nie';
  9. ?>
webspy
Dziękuję, trim() działa biggrin.gif
A teraz jeszcze chciałbym zrobić coś takiego, że jak znajdzie tą samą wartość to wtedy kasuje ją z pliku.txt (czyli odpowiednia linijke).

kombinowalem wstawic $i++; zeby liczylo ktora linijka ale to mi nie działa ;/
Kod
</span><span class="postcolor"><?
$lista_gg = file('lista_gg.txt');
$kat = (isset($_GET['kat']) ? $_GET['kat'] : '');
foreach($lista_gg as $wartosc)
   if (trim($wartosc) == $kat)
      echo "tak";
// Tutaj jakas funkcja ktora kasuje ta wartosc (linijke) z pliku
   else
     echo 'nie';
?>
Sabistik
Proszę o poprawę tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty.
webspy
Działa biggrin.gif cos takiego wykombinowałem.
Kod
<?
$lista_gg = file('lista_gg.txt');
$kat = (isset($_GET['kat']) ? $_GET['kat'] : '');
$i =0;
foreach($lista_gg as $wartosc)
  if (trim($wartosc) == $kat){
     echo "tak $wartosc $i";
$plik = file("lista_gg.txt");
unset($plik[$i]); // nr linii do skasowania
$f = fopen('lista_gg.txt', 'w');
foreach($plik as $linia){
   fputs($f, $linia);
}
fclose($f);
echo "wykasowano linie $i";
$i++;
    }
  else{
    echo 'nie $i';
    $i++;
    }
        
?>
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.