begin process at 2010 09 06 06:24:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > FONCTION TRANSFORMER UN TABLEAU EN OBJET

FONCTION TRANSFORMER UN TABLEAU EN OBJET


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :transformer, tableau, objet Niveau :Débutant Date de création :09/04/2005 Date de mise à jour :10/08/2010 11:38:17 Vu :4 092

Auteur : drnight

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Bon, honnêtement, je n'ai pas encore trouvé d'utilité à cette fonction, mais je l'ai codé, donc autant en faire profiter les autres !
Donc c'est simple, vous avez un tableau du style:

array('test1' => 'valeur', 'test2', 'test3' => array(1, 3))

j'ai fait exprès de faire des types de clé différentes... La fonction gère les tableaux multidimensionnels.

pour obtenir un objet, il suffit d'écrire:

$objet = array_to_object($tableau, 'nomdelaclasse');

si vous aviez une valeur d'enregistrée sous $tableau['key'], elle sera accessible par $objet->key

$tableau contient le tableau source et 'nomdelaclasse' est le nom de la classe permettant la construction de l'objet.
Attention, si vous avez des clès de tableau numérique comme $tableau[2], elle ne sera pas ajoutée a l'objet, (car $tableau->2, c'est invalide !) sauf si vous définissez un 3e argument:

$objet = array_to_object($tableau, 'nomdelaclasse', '_');

le 3e argument est un préfixe. En utilisant cette méthode, $tableau[2] donnera $objet->_2 (et ça c'est valide!)

Voilà, au bonheur de celui qui en aura trouvé une utilité interressante ;)

Source

  • <?php
  • function array_to_object($array, $class_name, $numbers = false)
  • {
  • if ( is_array($array) && count($array) > 0 )
  • {
  • $var_names = array();
  • $var_values = array();
  • foreach ( $array as $key => $value )
  • {
  • if ( !is_numeric($key) )
  • {
  • $value = serialize($value);
  • $var_names[] = '$' . $key;
  • $var_values[] = '$this->' . $key . ' = unserialize(\'' . $value . '\');';
  • }
  • elseif ( $numbers != false )
  • {
  • $value = serialize($value);
  • $var_names[] = '$' . $numbers . $key;
  • $var_values[] = '$this->' . $numbers . $key . ' = unserialize(\'' . $value . '\');';
  • }
  • }
  • eval('class ' . $class_name . ' {' . "\n" . 'var ' . implode(', ', $var_names) . ';' . "\n" . 'function ' . $class_name . '() {' . "\n" . implode("\n", $var_values) . "\n" . '}' . "\n" . '}' . "\n" . '$object = new ' . $class_name . ';');
  • return $object;
  • }
  • else
  • {
  • return false;
  • }
  • }
  • ?>
<?php

function array_to_object($array, $class_name, $numbers = false)
{
	if ( is_array($array) && count($array) > 0 )
	{
		$var_names = array();
		$var_values = array();

		foreach ( $array as $key => $value )
		{
			if ( !is_numeric($key) )
			{
				$value = serialize($value);

				$var_names[] = '$' . $key;
				$var_values[] = '$this->' . $key . ' = unserialize(\'' . $value . '\');';
			}
			elseif ( $numbers != false )
			{
				$value = serialize($value);

				$var_names[] = '$' . $numbers . $key;
				$var_values[] = '$this->' . $numbers . $key . ' = unserialize(\'' . $value . '\');';
			}
		}

		eval('class ' . $class_name . ' {' . "\n" . 'var ' . implode(', ', $var_names) . ';' . "\n" . 'function ' . $class_name . '() {' . "\n" . implode("\n", $var_values) . "\n" . '}' . "\n" . '}' . "\n" . '$object = new ' . $class_name . ';');

		return $object;
	}
	else
	{
		return false;
	}
}

?>



 Historique

10 août 2010 11:38:17 :
Changement dans les commentaires.

 Sources du même auteur

Source avec Zip RAFRAÎCHIR LE CONTENU D'UNE PAGE, OU D'UN CALQUE SANS TIC (B...

 Sources de la même categorie

Source avec Zip Source avec une capture MY.EXCEPTION par inwebo
SIMPLIFIEZ VOS CONNEXIONS FTP AVEC LEGFTP ! par leglopin
Source avec une capture CLASSE GÉNÉRATEUR DE CODES BARRES 2D DATAMATRIX par TorTukiTu
CLASSE MAIL par djguigui34400
Source avec Zip DÉBOGAGE D'UN CODE PHP (SUIVIT DES VARIABLES) par originalcompo

 Sources en rapport avec celle ci

Source avec Zip MY.REMOTE : SERVEUR D'OBJETS PHP5 par inwebo
PARCOURS DE TABLEAU À L'AIDE D'ATTRIBUTS HTML "NAME par choy
Source avec Zip TRANSFORMER UN TABLEAU D'OBJETS EN TABLEAU UNIDIMENSIONNEL par raoulman
Source avec Zip TRANSFORMER UN TABLEAU MULTIDIMENSIONNEL EN TABLEAU UNIDIMEN... par raoulman
HTTP_BUILD_QUERY() POUR PHP 4 par kankrelune

Commentaires et avis

Commentaire de drnight le 11/04/2005 14:13:31

Bon apparement il existe la fonction settype de php qui fait la même chose alors.... au temps pour moi !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

transformer un tableau en objet [ par franco_se ] HelloJe souhaiterai transformer un tableau multidimensionnel en objet.Existe-t-il une fonction  ( a la maniere de mysql_fetch_object ) ?Ou faut-il en transformer un tableau multidimensionnel javascript en tableau multidimensionnel php [ par sagat06 ] Bonjour à tous.Je tiens à préciser que mon niveau en php est assez limité, mes excuses, je tenterai d'y remédier.Voilà mon soucis: actuellement sur un lien dynamique [ par kedieng ] Salut à tous! Je fais une petite messagerie. Lorsqu'on clique sur Boite de reception on voit la liste de ses messages dans un tableau à trois colonnes Comment accéder facilement à un élément d'un tableau d'objets? [ par takinelinfo ] Bonjour,J'ai une toute petite question.Imaginons un tableau d'objet. Mon objet possede entre autre un attribut "id", "libelle" etc...Je fais donc un t pb avec la poo5 [ par windu ] Voila mon problème:Je crée un objet qui manipule (entre autres) des tableaux.... jusque là tout va bien!La où je coince, c'est que cet objet est appel transformer un tableau multidimensionnel en chaine de caracteres [ par franco_se ] bonjour a tous.voila, je cherche a enregistrer un tableau multidimensionnel dans un champ de ma table sql .le probleme est que, lorsque je fais "inser Tableau d'objet [ par Galmiza ] Salut,Est-il possible de cr&#233;er un tableau d'objets ?$tab_membres = array(new Membre("nom1", "pr&#233;nom1"),new Membre("nom2", "pr&#233;nom2"),.. problème sur free [ par nemetos ] Bonjour,j'ai développé un site en local avec easy php 1.8. Il fonctionne très bien. Seulement lorsque je l'ai uploadé sur free il y a un bug. Voici co Récupérer tableau distant [ par alex2100 ] Bonjour à tous,Je suis perdu. Je recherche la solution miracle. Voici mon problème, dans ma page web j'ai un tableau.Je voudrais que le contenu de ce Transformer un PDF (FPDF) en image [ par lowkey ] Salut !!Je souhaiterais transformer un PDF créé avec la classe FPDF en image.Ma question est : Est-ce que c'est possible?Voilou !! Merci d'avancelowke


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales