Tror ikke helt du forstår.
- $sprognavne[] = new stdClass();
betyder at $sprognavne nu er et array med ét element, det er grundlæggende det samme som:
- $sprognavne = array(new stdClass());
-
- //eller
-
- $sprognavne = array( 0 => new stdClass());
Så når du laver:
- foreach ($navne AS $n)
- {
- $sprognavne[$n->sprogkode]->sprogkode = $n->sprogkode;
- $sprognavne[$n->sprogkode]->sprognavn = $n->sprognavn;
- }
prøver du at sætte sprognavn og sprogkode på et plads i arrayet som er tomt ... nemlig $n->sprogkode. Det du skal gøre er:
- $sprognavne = array();
- foreach ($navne AS $n)
- {
- if (!isset($sprognavne[$n->sprogkode]))
- {
- $sprognavne[$n->sprogkode] = new stdClass();
- }
- $sprognavne[$n->sprogkode]->sprogkode = $n->sprogkode;
- $sprognavne[$n->sprogkode]->sprognavn = $n->sprognavn;
- }
Eller endnu bedre kunne du bare gøre:
- $sprognavne = array();
- foreach ($navne AS $n)
- {
- if (!isset($sprognavne[$n->sprogkode]))
- {
- $sprognavne[$n->sprogkode] = $n;
- }
- }
Indlæg senest redigeret d. 11.02.2015 10:24 af Bruger #17081