Algorithmen und Datenstrukturen in PHP: Ein vollständiger Leitfaden für Entwickler

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in Algorithmen und Datenstrukturen in PHP



PHP ist eine der beliebtesten Sprachen für die Webentwicklung, aber viele Entwickler unterschätzen die Bedeutung des Verständnisses von Algorithmen und Datenstrukturen. Die Kenntnis dieser grundlegenden Konzepte ermöglicht es Ihnen, effizienteren, schnelleren und skalierbareren Code zu schreiben. In diesem Artikel werden wir die wichtigsten Algorithmen und Datenstrukturen in PHP mit praktischen Beispielen durchgehen, die Ihnen helfen, Ihre Projekte zu optimieren.



Unabhängig davon, ob Sie mit CMS, Frameworks arbeiten oder APIs erstellen, Algorithmen und Datenstrukturen in PHP sind Werkzeuge, die sich direkt auf die Leistung Ihrer Anwendung auswirken. Beginnen wir mit den Grundlagen.



Grundlegende Datenstrukturen in PHP



Arrays: Ein vielseitiges Werkzeug



In PHP sind Arrays die flexibelste Datenstruktur. Sie können als Listen, Stapel, Warteschlangen und sogar als Hash-Tabellen fungieren. Betrachten wir die Standardoperationen:



<?php// Array erstellen$numbers = [5, 3, 8, 1, 9];

// Element am Ende hinzufügen$numbers[] = 7;

// Letztes Element entfernen (wie ein Stack)$last = array_pop($numbers); // 7

// Erstes Element entfernen (wie eine Queue)$first = array_shift($numbers); // 5

// Element suchen$index = array_search(8, $numbers); // 1

// Sortierensort($numbers);print_r($numbers); // [1, 3, 8, 9]?>


Wichtig zu beachten: Die integrierten PHP-Funktionen für Arrays sind auf C-Ebene optimiert. Verwenden Sie sie daher für grundlegende Operationen, anstatt eigene Implementierungen zu schreiben.



Stack in PHP



Ein Stack arbeitet nach dem LIFO-Prinzip (Last In, First Out). Implementierung in PHP mit SplStack:



<?php$stack = new SplStack();$stack->push('erster');$stack->push('zweiter');$stack->push('dritter');

echo $stack->pop(); // 'dritter'echo $stack->pop(); // 'zweiter'?>


Stacks sind nützlich zum Überprüfen von Klammern im Code, zur Implementierung einer "Rückgängig"-Funktion (undo) oder für die Tiefensuche (DFS) in Graphen.



Queue in PHP



Eine Queue arbeitet nach dem FIFO-Prinzip (First In, First Out). Verwenden Sie SplQueue:



<?php$queue = new SplQueue();$queue->enqueue('Aufgabe 1');$queue->enqueue('Aufgabe 2');$queue->enqueue('Aufgabe 3');

echo $queue->dequeue(); // 'Aufgabe 1'echo $queue->dequeue(); // 'Aufgabe 2'?>


Queues sind unverzichtbar bei der Verarbeitung von Hintergrundaufgaben, der Arbeit mit Nachrichtenwarteschlangen (RabbitMQ, Redis) und der Implementierung von BFS (Breitensuche).



Sortieralgorithmen in PHP



Quick Sort



Einer der effizientesten Algorithmen. Implementierung in PHP:



<?phpfunction quickSort(array $arr): array {    if (count($arr) <= 1) {        return $arr;    }        $pivot = $arr[0];    $left = $right = [];        for ($i = 1; $i < count($arr); $i++) {        if ($arr[$i] < $pivot) {            $left[] = $arr[$i];        } else {            $right[] = $arr[$i];        }    }        return array_merge(        quickSort($left),        [$pivot],        quickSort($right)    );}

$data = [3, 7, 1, 9, 2, 5];print_r(quickSort($data)); // [1, 2, 3, 5, 7, 9]?>


Komplexität: O(n log n) im Durchschnitt, O(n²) im schlechtesten Fall. Für große Arrays verwenden Sie die integrierte sort() – sie ist schneller.



Bubble Sort



Ein einfacher, aber langsamer Algorithmus. Nützlich für Lernzwecke und kleine Arrays:



<?phpfunction bubbleSort(array $arr): array {    $n = count($arr);    for ($i = 0; $i < $n - 1; $i++) {        for ($j = 0; $j < $n - $i - 1; $j++) {            if ($arr[$j] > $arr[$j + 1]) {                [$arr[$j], $arr[$j + 1]] = [$arr[$j + 1], $arr[$j]];            }        }    }    return $arr;}?>


Komplexität: O(n²). Nicht für die Produktion verwenden – d

Blogs

Buchempfehlungen