PHP ist eine Server-basierte Sprache für die Erstellung interaktiver Web -Anwendungen und Rendering Benutzer Inhalte auf Abruf . Es unterstützt eine Vielzahl der Datenerhebung Klassen in seiner Reihe Konstrukt , einschließlich indizierte Arrays und assoziative Arrays . Mit einer großen Anzahl von Benutzern , kann die Leistung des Codes zu einem Problem werden . Obwohl assoziative Arrays nicht erfordern erhebliche CPU-Overhead , brauchen sie mehr Speicher im RAM als Ihr Programm läuft speichern. Indizierte Arrays
Ein Standard indiziertes Array in PHP und andere Sprachen enthält eine Reihe von nachfolgenden Wert Indizes zugeordnet Datenwerte . Ein Daten- Wert wird durch Bezugnahme auf den Index oder die Position im Array zugegriffen
$ my_array = array ( 1, 2 , 3, 4 , 5); .
Zugriff auf das Element " $ my_array [0] " gibt den Wert 1 . Indizierte Arrays sind am besten für die Speicherung und den Zugriff auf strukturierte Daten . Es wäre ineffizient , um die folgenden zu tun, wie es in den Lücken in Indexwerte füllen würde , die Aufnahme einer sehr große Menge an Speicher:
$ my_array [] = 7; $ my_array [13] = 5; $ my_array [76] = -4 ;
assoziative Arrays
um indizierte Arrays Gegensatz PHP assoziative Arrays enthalten eine Reihe von Schlüssel-Wert- Paaren. Die Datenwerte werden durch Bezugnahme auf die Taste, die entweder eine eindeutige Zeichenfolge oder einen numerischen Wert zugegriffen werden kann . ; $ My_array ("eins" =
$ my_array (0 => 5, 13 = > 5, 75 = > -4 ): Die ineffiziente obigen Beispiel besser als assoziatives Array geschrieben werden > 1 , "zwei" => 2, " siebzehn " => 17);
CPU Leistung
PHP ist optimiert für die Verarbeitung von Zeichenketten . Mit einer Zeichenfolge als Schlüssel für ein assoziatives Array nicht produzieren viel Overhead. Beim Zugriff auf ein Element in einem assoziativen Array in PHP , wird das Array nicht von Anfang bis Ende , um zu bestimmen , wenn eine der Tasten Spiel gesucht. Stattdessen wird ein Schlüssel in ein assoziatives Array Karten auf einen Indexwert , ohne zusätzlichen Aufwand in Lookup- Zeit über indizierte Arrays .
Speicher-Performance
Seit PHP assoziative Arrays möglich ein Schlüssel - Wert-Paar , als nur auf einen Wert entgegen , benötigen sie zusätzliche Speicher-Overhead , Raum Ihres Programms im RAM verwendet beim Laufen, wenn sie indizierte Arrays verglichen. Dieser zusätzliche Speicher ist in der Regel vernachlässigbar , wenn Sie mit sehr großen Arrays sind . In diesem Fall kann es klug aufzuteilen sehr große Arrays in einer Untergruppe von Arrays, die bei Bedarf abgerufen werden können.