欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php簡(jiǎn)單對(duì)象與數(shù)組的轉(zhuǎn)換函數(shù)代碼(php多層數(shù)組和對(duì)象的轉(zhuǎn)換)

 更新時(shí)間:2011年05月18日 00:05:27   作者:  
最近用到一些簡(jiǎn)單的對(duì)象與數(shù)組的相互轉(zhuǎn)換的問(wèn)題,寫(xiě)個(gè)兩個(gè)方法如下,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:

function arrayToObject($e){
if( gettype($e)!='array' ) return;
foreach($e as $k=>$v){
if( gettype($v)=='array' || getType($v)=='object' )
$e[$k]=(object)arrayToObject($v);
}
return (object)$e;
}

function objectToArray($e){
$e=(array)$e;
foreach($e as $k=>$v){
if( gettype($v)=='resource' ) return;
if( gettype($v)=='object' || gettype($v)=='array' )
$e[$k]=(array)objectToArray($v);
}
return $e;
}

上面的內(nèi)容來(lái)自 cnblogs jaiho
php多層數(shù)組和對(duì)象的轉(zhuǎn)換
多層數(shù)組和對(duì)象轉(zhuǎn)化的用途很簡(jiǎn)單,便于處理WebService中多層數(shù)組和對(duì)象的轉(zhuǎn)化
簡(jiǎn)單的(array)和(object)只能處理單層的數(shù)據(jù),對(duì)于多層的數(shù)組和對(duì)象轉(zhuǎn)換則無(wú)能為力。
通過(guò)json_decode(json_encode($object)可以將對(duì)象一次性轉(zhuǎn)換為數(shù)組,但是object中遇到非utf-8編碼的非ascii字符則會(huì)出現(xiàn)問(wèn)題,比如gbk的中文,何況json_encode和decode的性能也值得疑慮。

下面上代碼:
復(fù)制代碼 代碼如下:

<?php

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:
// Create new stdClass Object
$init = new stdClass;
// Add some test data
$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 array
print_r($init);
echo "\n";
print_r($array);
echo "\n";
print_r($object);
?>

相關(guān)文章

  • 深入理解PHP中的static和yield關(guān)鍵字

    深入理解PHP中的static和yield關(guān)鍵字

    這篇文章主要給大家介紹了關(guān)于PHP中static和yield關(guān)鍵字的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,文章需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • PHP中static關(guān)鍵字原理的學(xué)習(xí)研究分析

    PHP中static關(guān)鍵字原理的學(xué)習(xí)研究分析

    PHP中static關(guān)鍵字原理的學(xué)習(xí)研究分析,學(xué)習(xí)php的朋友可以參考下。
    2011-07-07
  • php 批量添加多行文本框textarea一行一個(gè)

    php 批量添加多行文本框textarea一行一個(gè)

    這篇文章主要介紹了用php批量添加多行文本框textarea,一行一個(gè),需要的朋友可以參考下
    2014-06-06
  • PHP調(diào)試的強(qiáng)悍利器之PHPDBG

    PHP調(diào)試的強(qiáng)悍利器之PHPDBG

    這篇文章主要為大家詳細(xì)介紹了PHP調(diào)試的強(qiáng)悍利器之PHPDBG的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-02-02
  • PHP獲取MySql新增記錄ID值的3種方法

    PHP獲取MySql新增記錄ID值的3種方法

    這篇文章主要介紹了PHP獲取MySql新增記錄ID值的3種方法,一般使用PHP自帶函數(shù)mysql_insert_id() 即可實(shí)現(xiàn),另2種方法權(quán)作特殊情況下使用,需要的朋友可以參考下
    2014-06-06
  • 詳解PHP框架EasySwoole

    詳解PHP框架EasySwoole

    EasySwoole是一款常駐內(nèi)存型的分布式swoole框架,專(zhuān)為API而生,支持同時(shí)混合監(jiān)聽(tīng)HTTP、WebSocket、自定義TCP、UDP協(xié)議,且擁有豐富的組件,例如協(xié)程 連接池、TP風(fēng)格的協(xié)程O(píng)RM、協(xié)程微信SDK等諸多組件。讓開(kāi)發(fā)者編寫(xiě)出多進(jìn)程,可異步,高可用的應(yīng)用服務(wù)。
    2021-05-05
  • php中使用sftp教程

    php中使用sftp教程

    這篇文章主要介紹了php中使用sftp教程,本文講解了ftp 協(xié)議簡(jiǎn)介、ssh協(xié)議、sftp 協(xié)議等知識(shí),并給出了FTP和SFTP操作類(lèi)實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • php使用session二維數(shù)組實(shí)例

    php使用session二維數(shù)組實(shí)例

    這篇文章主要介紹了php使用session二維數(shù)組的用法,實(shí)例形式講述了session中對(duì)于二維數(shù)組的運(yùn)用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • PHP消息隊(duì)列用法實(shí)例分析

    PHP消息隊(duì)列用法實(shí)例分析

    這篇文章主要介紹了PHP消息隊(duì)列用法,結(jié)合實(shí)例形式分析了PHP消息隊(duì)列用于Linux下進(jìn)程間通信的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • php中的實(shí)現(xiàn)trim函數(shù)代碼

    php中的實(shí)現(xiàn)trim函數(shù)代碼

    trim() 函數(shù)從字符串的兩端刪除空白字符和其他預(yù)定義字符。
    2007-03-03

最新評(píng)論