Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> porownianie tablicy i zmiennej, Jak porównać tablicę i zmienną czy są równe??
webspy
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


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";
}

     }
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


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. ?>


Ten post edytował nevt 3.03.2008, 07:56:57
Go to the top of the page
+Quote Post
webspy
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Dziękuję, trim() działa (IMG:http://forum.php.pl/style_emoticons/default/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';
?>
Go to the top of the page
+Quote Post
Sabistik
post
Post #5


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Proszę o poprawę tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty.
Go to the top of the page
+Quote Post
webspy
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 9
Dołączył: 3.03.2008

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


Działa (IMG:http://forum.php.pl/style_emoticons/default/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++;
    }
        
?>
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: 24.08.2025 - 12:42