Cette fonction function array2object()
n'est pas nouvelle en soit, mais voici une écriture récursive en PHP5 plus rigolote ( et surtout plus restrictive ) à utiliser.
La fonction ci-dessous ne fonctionne qu'en PHP 5 de part le typage du paramètre (array $array)
ainsi on évite le contrôle is_array()
. Toutefois, si vous envoyez une valeur qui n'est pas un tableau, une erreur de compilation se produira.
function array2object(array $array) { $object = new stdClass(); foreach($array as $key => $value) { if(is_array($value)) { $object->$key = array2object($value); } else { $object->$key = $value; } } return $object; }
Exemples d'utilisation :
$tableau[0] = 'Valeur 0'; $tableau[1] = 'Valeur 1'; $tableau['deux'] = 'Valeur 2'; $tableau['trois']' = 'Valeur 3'; $objet = array2object($tableau); echo $objet->0; // Ecriture incorrecte echo $objet->{'1'}; // Ecriture correcte echo $objet->deux; // Ecriture classique echo $objet->trois; // etc...