PHP array als stdClass Object

Author:
Kategorie:
PHP Script
Beitrag vom:
PHP stdClass Object array
PHP stdClass Object array

PHP array in ein stdClass Object konvertieren. Prüfen eines PHP stdClass Object und zugreifen auf ein stdClass Object.

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->.


Seite teilen

Der Beitrag: PHP array als stdClass Object, aus der Rubrik PHP Script hat dir gefallen?