Avatar billede Droa Seniormester
21. august 2010 - 21:07 Der er 5 kommentarer og
3 løsninger

Søg i objekter

Vis jeg nu har en klasse der ser sådan ud


class eksempel
{
public $name;
public $id;
public $enandenvariabel;

function eksempel()
{
}
}

$objektarray = array();

$objektarray[0] = new eksempel();
$objektarray[0]->name = "Kaj";
$objektarray[0]->id = 78;
$objeckarray[0]->enandenvariabel = "Noget tekst";

$objektarray[1] = new eksempel();
$objektarray[1]->name = "Morten";
$objektarray[1]->id = 56;
$objeckarray[1]->enandenvariabel = "Noget tekst";


Nu er det ret simpelt, og man kunne have gjort det hele med Contrukt, men det var mere for og gøre det overskueligt på Eksperten.....

nu er mit spørgsmål... kan jeg søge i mit Objektarray, på et af objekternes id f.eks.. og få resten af objektet returneret?

eller skal man køre en foreach og tjekke alle for det id man søger efter?
Avatar billede Jackount Nybegynder
21. august 2010 - 22:27 #1
Jeg er ikke så godt inde i PHP, men jeg kunne forestille mig noget i den her stil ville virke:

for(i=0;i=10;i++) {
  if $objektarray[i]->id == @definedId {
      $return1 = $objektarray[i]->name
      $return2 = $objektarray[i]->enandenvariabel
  }
}

Hvis du forstår ;)
Ellers kan en anden med mere PHP viden nok omskrive det her præcist ;)
Avatar billede The_Buzz Novice
21. august 2010 - 22:28 #2
I disse tider med nok kraft i de fleste servere ville jeg bare lave en foreach og traverse igennem hele arrayet og søge efter f.eks. name og så return resten når du rammer feks Kaj.
Avatar billede Droa Seniormester
21. august 2010 - 23:25 #3
mange tak, jeg vil lige dele point mellem jer, selvom jeg nok os vil holde mig til en foreach, so er for eksemplet værd og gi point os
Avatar billede intenz Novice
22. august 2010 - 10:20 #4
Hvis dit array ikke bliver større end et par 100 objekter, er foreach fin nok.

Hvis ID er unikt og du kun bruger det til at søge på, kan du med fordel gemme objektet i arrayet med ID'et som key. Så kan du hente det direkte.


$eks1 = new eksempel();
$eks1->id = 78;

$eks2 = new eksempel();
$eks2->id = 56;

$objektarray = array();
$objektarray[78] = $eks1;
$objektarray[56] = $eks2;


Men hvis du har behov for at søge på forskellige ting er foreach (eller lign. loop) vejen frem.
Avatar billede Jackount Nybegynder
22. august 2010 - 10:55 #5
Jeg forstod det som at jeg skulle lægge et svar? :)
Avatar billede Jackount Nybegynder
22. august 2010 - 10:55 #6
Ved nærmere eftertanke så vil jeg mene intenz har den bedste løsning ;)
Avatar billede intenz Novice
22. august 2010 - 11:24 #7
Så lægger jeg også et svar :)
Avatar billede Droa Seniormester
22. august 2010 - 13:00 #8
mange tak for alle svarne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester