Gå til innhold

legge til og trekke fra elementer i en array


Anbefalte innlegg

Når brukere benytter et søkefelt ønsker jeg å plassere dems siste søk i en array, lagre dette i en session slik at jeg kan presenrere dette tilbake til brukeren like ved søkefeltet slik at de kan bruke et av sine siste søk om ønskelig... dette har jeg fått til forøvrig.

 

Metoden jeg benytter er å lagre hvert søk i en array slik:

 

&--#60;?php
/**
* en globalt tilgjenglig klasse hvor følgende kode, relatert til dette, befinner seg:
**
*  private $lastSearches = array();
*
*  public function setLastSearch($str){
*	  $this-&--#62;lastSearches[] = $str;
*  }
*
*  public function getLastSearches(){
*	  return $this-&--#62;lastSearches;
*  }
*/
?&--#62;

 

Videre, når en bruker søker og klikker på søk-knappen gjør jeg følgende:

 

&--#60;?php
if (isset($_GET['Search'])){
extract($_GET);
$_SESSION['storage']-&--#62;setLastSearch($Search);
}
?&--#62;

 

Dette resulterer i at jeg kan hente ut igjen tildligere søk på følgende måte:

 

&--#60;?php
/*
*  ved bruk av array_reverse og array_slice sørger jeg for at kun de 5 siste søkene blir hentet ut.
*/
$lastSearches = array_reverse(array_slice($_SESSION['SessionVars']-&--#62;getLastSearches(),0,5));
foreach($lastSearches as $kywrds){
echo '#   '.$kywrds.'&--#60;br&--#62;';
}
?&--#62;

 

Dette oppsettet legger kun til nye ellementer i arrayen. Noen jeg ikke ønsker.

Jeg ønsker at jeg kan sette en maks limit på tilgjenglige elemeter i arrayen. Når denne limiten overskrider ønsker jeg at de gamleste søket forsvinner. Litt sånn gjennomtrekk løsning.

 

Noen som vet hvordan jeg kan få til dette?

Endret av Yawa
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...