Start · Sprachen · PHP · Referenz · dba_key_split

dba_key_split

Funktion

Zerlegt einen DBA-Schlüssel in Zeichenketten-Darstellung in ein Array mit den Einzelkomponenten.

seit PHP 5.0.0 Kategorie: db

Signatur

dba_key_split(string|false $key): array|false

Beschreibung

dba_key_split() wird verwendet, um einen zusammengesetzten DBA-Schlüssel, der als Zeichenkette vorliegt (z. B. im Format "(key1)(key2)"), in seine Bestandteile aufzuteilen. Das Ergebnis ist ein Array, das die einzelnen Schlüsselkomponenten enthält.

Diese Funktion ist nützlich, wenn mit Datenbank-Abstrationsebenen (DBA) gearbeitet wird, die zusammengesetzte Schlüssel intern als Zeichenketten speichern und diese bei der Verarbeitung wieder in einzelne Komponenten aufgeteilt werden müssen.

Typischerweise wird dba_key_split() in Kombination mit dba_firstkey() oder dba_nextkey() eingesetzt, wenn die zurückgegebenen Schlüssel zusammengesetzt sind und weiterverarbeitet werden sollen.

Wird false als Argument übergeben (z. B. wenn dba_firstkey() keinen Schlüssel mehr liefert), gibt die Funktion ebenfalls false zurück, was eine einfache Verwendung in Schleifen ermöglicht.

Parameter

Name Typ Default Beschreibung
$key Pflicht string|false Der zusammengesetzte DBA-Schlüssel als Zeichenkette im Format "(komponente1)(komponente2)", oder false (z. B. als Rückgabe von dba_firstkey()/dba_nextkey(), wenn kein weiterer Schlüssel vorhanden ist).

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den Schlüsselkomponenten zurück, wenn ein gültiger Schlüssel-String übergeben wurde. Der Array-Index 0 enthält die erste Komponente, Index 1 die zweite. Wird false übergeben, gibt die Funktion false zurück.

Beispiele

Schlüssel aus DBA-Iteration aufteilen

<?php
// DBA-Datenbankdatei öffnen (DB4-Format als Beispiel)
$db = dba_open('/tmp/test.db', 'n', 'db4');

// Zusammengesetzten Schlüssel einfügen
dba_insert('(vorname)(nachname)', 'Max Mustermann', $db);

// Schlüssel iterieren und aufteilen
$key = dba_firstkey($db);
while ($key !== false) {
    $parts = dba_key_split($key);
    if ($parts !== false) {
        echo 'Komponente 1: ' . $parts[0] . PHP_EOL;
        echo 'Komponente 2: ' . $parts[1] . PHP_EOL;
    }
    $key = dba_nextkey($db);
}

dba_close($db);
Komponente 1: vorname Komponente 2: nachname

Direktes Aufteilen eines Schlüssel-Strings

<?php
// Direktes Aufteilen eines zusammengesetzten Schlüssels
$key = '(artikel)(kategorie)';
$parts = dba_key_split($key);

if ($parts !== false) {
    var_dump($parts);
}

// Umgang mit false (kein weiterer Schlüssel)
$result = dba_key_split(false);
var_dump($result);
array(2) { [0]=> string(7) "artikel" [1]=> string(9) "kategorie" } bool(false)

// Wichtig · Fallstricke

Verfügbarkeit: dba_key_split() steht nur zur Verfügung, wenn PHP mit DBA-Unterstützung kompiliert wurde. Nicht alle DBA-Handler unterstützen zusammengesetzte Schlüssel – prüfen Sie die Dokumentation des jeweiligen Handlers.

Format: Das erwartete Schlüsselformat ist (komponente1)(komponente2) mit runden Klammern als Trennzeichen. Schlüssel ohne dieses Format werden möglicherweise nicht korrekt aufgeteilt.

Die Funktion ist relativ selten im Einsatz und primär für DBM-artige Datenbanken relevant, die zusammengesetzte Schlüssel unterstützen.