PHP Academy · Lektion

Sortering og søgning i arrays

Brug sort, usort, array_search og in_array.

Lektion 3 af 413 trin

Sortering og søgning i arrays er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvorfor sortere?

PHP har et omfattende udvalg af sorterings- og søgefunktioner til arrays. Vælg den rigtige ud fra, om du vil bevare nøgler, sortere efter værdi eller nøgle eller bruge en tilpasset sammenligningsfunktion.

sort() og rsort()

sort() sorterer efter værdi i stigende rækkefølge (tildeler nye indekser); rsort() sorterer i faldende rækkefølge:

<?php
$nums = [3, 1, 4, 1, 5, 9, 2, 6];
sort($nums);
print_r($nums); // [1, 1, 2, 3, 4, 5, 6, 9]

$letters = ['c', 'a', 'b'];
rsort($letters);
print_r($letters); // ['c', 'b', 'a']

asort() og arsort()

asort() sorterer efter værdi, men bevarer nøglerne — nyttigt for associative arrays:

<?php
$scores = ['Alice' => 85, 'Bob' => 92, 'Carol' => 78];
asort($scores);
print_r($scores);
// ['Carol'=>78, 'Alice'=>85, 'Bob'=>92]

ksort() og krsort()

ksort() sorterer efter nøgler i stigende rækkefølge; krsort() i faldende rækkefølge:

<?php
$data = ['banana' => 2, 'apple' => 5, 'cherry' => 1];
ksort($data);
print_r($data);
// ['apple'=>5, 'banana'=>2, 'cherry'=>1]

usort() — Tilpasset sammenligningsfunktion

usort() sorterer med en brugerdefineret sammenligningsfunktion:

<?php
$people = [
    ['name' => 'Charlie', 'age' => 25],
    ['name' => 'Alice',   'age' => 30],
    ['name' => 'Bob',     'age' => 20],
];

usort($people, fn($a, $b) => $a['age'] <=> $b['age']);

foreach ($people as $p) echo $p['name'] . ' ';  // Bob Charlie Alice

in_array() — Værdisøgning

in_array() undersøger, om en værdi findes i et array:

<?php
$tags = ['php', 'mysql', 'nginx'];

var_dump(in_array('php', $tags));      // true
var_dump(in_array('apache', $tags));   // false

// Third argument = strict mode (uses ===)
var_dump(in_array('1', [1, 2, 3], true));  // false (type mismatch)

array_search() — Returnerer nøgle

array_search() returnerer nøglen til den første matchende værdi eller false:

<?php
$colors = ['red', 'green', 'blue'];

$key = array_search('green', $colors);
echo $key;  // 1

$notFound = array_search('purple', $colors);
var_dump($notFound);  // bool(false)

array_unique()

Fjern duplikerede værdier fra et array:

<?php
$ids = [1, 2, 2, 3, 3, 3, 4];
$unique = array_unique($ids);
print_r($unique); // [1, 2, 3, 4] — keys preserved!

$reindexed = array_values($unique); // re-index to 0,1,2,3

array_flip()

Byt om på nøgler og værdier i et associativt array:

<?php
$map = ['a' => 1, 'b' => 2, 'c' => 3];
$flipped = array_flip($map);
print_r($flipped); // [1=>'a', 2=>'b', 3=>'c']

// Useful for O(1) lookup by value
$exists = isset($flipped[2]);  // true

array_diff() og array_intersect()

Sammenlign arrays for at finde forskelle og overlap:

<?php
$a = [1, 2, 3, 4, 5];
$b = [3, 4, 5, 6, 7];

$diff   = array_diff($a, $b);       // [1, 2] — in a but not b
$inter  = array_intersect($a, $b);  // [3, 4, 5] — in both

print_r($diff);
print_r($inter);

Binær søgning med egen logik

PHP har ikke en indbygget binær søgning, men du kan implementere en eller bruge sorterede nøgler til hurtige opslag:

<?php
function binarySearch(array $arr, int $target): int {
    $lo = 0;
    $hi = count($arr) - 1;
    while ($lo <= $hi) {
        $mid = intdiv($lo + $hi, 2);
        if ($arr[$mid] === $target) return $mid;
        $arr[$mid] < $target ? $lo = $mid + 1 : $hi = $mid - 1;
    }
    return -1;
}
echo binarySearch([1,3,5,7,9], 7); // 3

Hurtigt tjek

Hvilken PHP-funktion returnerer nøglen til en matchende værdi i et array?

Opsummering: Sortering og søgning

Vigtige funktioner:

  • sort/rsort — efter værdi, tildeler nye indekser
  • asort/arsort — efter værdi, bevarer nøgler
  • ksort/krsort — efter nøgle
  • usort — tilpasset sammenligningsfunktion
  • in_array — kontrol af, om en værdi findes
  • array_search — opslag fra værdi til nøgle
  • array_unique/array_flip/array_diff/array_intersect
Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “Sortering og søgning i arrays” gratis?

Ja — hele teksten til “Sortering og søgning i arrays” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sortering og søgning i arrays”?

Brug sort, usort, array_search og in_array. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Sortering og søgning i arrays”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Indekserede og associative arrays
  2. Flerdimensionelle arrays
  3. Sortering og søgning i arrays
  4. Funktioner til array-transformation
← Tilbage til PHP Academy