Maison développement back-end tutoriel php PHP 对象、数组间的变换

PHP 对象、数组间的变换

Jun 13, 2016 am 10:55 AM
array gt object testing

PHP 对象、数组间的转换

/** * PHP 对象、数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/// 1. 利用(array)和(object),简单处理$objTemp = (object)array();$objTemp->a = 1;$objTemp->b = 2;$objTemp->c = 3;$arrTemp = (array)$objTemp;print_r($objTemp);print_r($arrTemp);?/**stdClass Object(    [a] => 1    [b] => 2    [c] => 3)Array(    [a] => 1    [b] => 2    [c] => 3)**/// PS:简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。// 2. 多维数组与对象间的转换处理/** * 将对象转换为多维数组 * **/function objectToArray($d) {	if (is_object($d)) {		// Gets the properties of the given object		// with get_object_vars function		$d = get_object_vars($d);	}	if (is_array($d)) {		/*		* Return array converted to object		* Using __FUNCTION__ (Magic constant)		* for recursive call		*/		return array_map(__FUNCTION__, $d);	}	else {		// Return array		return $d;	}} /** * 将多维数组转换为对象 * **/function arrayToObject($d) {	if (is_array($d)) {		/*		* Return array converted to object		* Using __FUNCTION__ (Magic constant)		* for recursive call		*/		return (object) array_map(__FUNCTION__, $d);	}	else {		// Return object		return $d;	}}// Useage:	$init = new stdClass;$init->foo = "Test data";$init->bar = new stdClass;$init->bar->baaz = "Testing";$init->bar->fooz = new stdClass;$init->bar->fooz->baz = "Testing again";$init->foox = "Just test";// Convert array to object and then object back to array$array = objectToArray($init);$object = arrayToObject($array);// Print objects and arrayprint_r($init);print_r($array);print_r($object);?/**stdClass Object(    [foo] => Test data    [bar] => stdClass Object        (            [baaz] => Testing            [fooz] => stdClass Object                (                    [baz] => Testing again                )        )    [foox] => Just test)Array(    [foo] => Test data    [bar] => Array        (            [baaz] => Testing            [fooz] => Array                (                    [baz] => Testing again                )        )    [foox] => Just test)stdClass Object(    [foo] => Test data    [bar] => stdClass Object        (            [baaz] => Testing            [fooz] => stdClass Object                (                    [baz] => Testing again                )        )    [foox] => Just test)**/
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

Quelles sont les différences entre Huawei GT3 Pro et GT4 ?

Répertoriez quelques outils utilisés pour tester la stabilité des systèmes Linux Répertoriez quelques outils utilisés pour tester la stabilité des systèmes Linux Feb 18, 2024 pm 03:07 PM

Répertoriez quelques outils utilisés pour tester la stabilité des systèmes Linux

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Correctif : l'outil de capture ne fonctionne pas sous Windows 11

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Jul 29, 2023 am 08:22 AM

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone

Trier le tableau à l'aide de la fonction Array.Sort en C# Trier le tableau à l'aide de la fonction Array.Sort en C# Nov 18, 2023 am 10:37 AM

Trier le tableau à l'aide de la fonction Array.Sort en C#

Performances du processeur Snapdragon X Elite presque identiques sur batterie par rapport à l'alimentation secteur dans les tests du Vivobook S15 Performances du processeur Snapdragon X Elite presque identiques sur batterie par rapport à l'alimentation secteur dans les tests du Vivobook S15 Jun 21, 2024 am 06:50 AM

Performances du processeur Snapdragon X Elite presque identiques sur batterie par rapport à l'alimentation secteur dans les tests du Vivobook S15

Performances du processeur Snapdragon X Elite presque identiques sur batterie et branché dans les benchmarks Vivobook S15 Performances du processeur Snapdragon X Elite presque identiques sur batterie et branché dans les benchmarks Vivobook S15 Jun 20, 2024 pm 03:59 PM

Performances du processeur Snapdragon X Elite presque identiques sur batterie et branché dans les benchmarks Vivobook S15

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

See all articles