PHP Codeschnipsel

Hier werden PHP Snippets zur praktischen Anwendung bereit gestellt.

PHP stdClass Object array

Um ein PHP Array in ein Object (stdClass) zu konvertieren, gibt es verschiedene Varianten, die zum Ziel führen. Das erste Beispiel zeigt eine PHP Funktion convertArrayToObject(), die beim Aufruf ein PHP Array rekursiv, in ein Objekt konvertiert. D.h. es werden hier auch alle Arrays innerhalb eines Arrays in ein stdClass Object überführt. Die kleine Funktion "array_debug()", dient hier lediglich zur besseren Visualisierung der Ausgabe.

<?php
    // debug array input - visual helper function
    function array_debug($input){
        echo '<pre>';
        print_r($input);
        echo '</pre>';
    }

    // recursive convert array to object function
    function convertArrayToObject($array) {
        $object = new stdClass();
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                $value = convertArrayToObject($value);
            }
            $object->$key = $value;
        }
        return $object;
    }

    // array example
    $array_personen = array(
        'person_1' => array('vorname' => 'Peer', 'nachname' => 'Stamml', 'alter' => 23),
        'person_2' => array('vorname' => array('Hans', 'Peter'), 'nachname' => 'Bossel', 'alter' => 62),
        'person_3' => array('vorname' => 'Nina', 'nachname' => 'Klokke', 'alter' => 37),
        'person_4' => array('vorname' => 'Anne', 'nachname' => 'Brusta', 'alter' => 34),
        'person_5' => array('vorname' => 'Suse', 'nachname' => 'Mohein', 'alter' => 28,
            array('kinder' => 2)
        )
    );

    // output the converted object array with debug function
    array_debug(
        convertArrayToObject($array_personen)
    );
?>

Die Konvertierung eins PHP Arrays, in ein stdClass Object, läßt sich auch ganz einfach mit der Notation object() umsetzten.

<?php
    // automatically converted array to stdClass with (object)
    $array_person = array(
        'alter' => 62, 'nachname' => 'Bossel', 'vorname' => 'Hans'
    );

    // turn array into PHP stdClass Object
    $show_person = (object) $array_person;

    // output the converted object array
    echo $show_person->nachname . ', ';
    echo $show_person->vorname . ' (Alter: ';
    echo $show_person->{'alter'} . ')';
?>

Um auf das stdClass Object zugreifen zu können, das in der $show_person Variable gespeichert ist, gibt es noch weitere Schreibweisen, wie z.B. $obj->{'name'}.