Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

PHP: Ein multidimensionales Array mit einem String-Pfad erstellen (Dot)

#Tutorials#PHP

Möchte man aus einem String-Pfad, wie zum beispiel "liste.eintrag.name" und dem Wert "Max Mustermann" ein Array machen, dass  multidimensional ist und den Wert dann an der letzten Stelle, so kann man folgende kleine Funktion verwenden.

/**
 * Loop through the keys (delimited with . by default) to get to the final property, and then do assignment on the value.
 * @param $arr
 * @param $path
 * @param $value
 * @param string $separator
 */
function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}

// Benutzung
$arr = [];
$path = 'liste.eintrag.name';
$value = 'Max Mustermann';
assignArrayByPath($arr,$path,$value);

// Resultat:
// array(
//   liste => array(
//     eintrag => array(
//       name => 'Max Mustermann'
//     )
//   )
// )

Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.