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

php多層數(shù)組與對象的轉(zhuǎn)換實(shí)例代碼

 更新時(shí)間:2013年08月05日 08:51:12   作者:  
通過json_decode(json_encode($object)可以將對象一次性轉(zhuǎn)換為數(shù)組,但是object中遇到非utf-8編碼的非ascii字符則會出現(xiàn)問題,比如gbk的中文,何況json_encode和decode的性能也值得疑慮

多層數(shù)組和對象轉(zhuǎn)化的用途很簡單,便于處理WebService中多層數(shù)組和對象的轉(zhuǎn)化

簡單的(array)和(object)只能處理單層的數(shù)據(jù),對于多層的數(shù)組和對象轉(zhuǎn)換則無能為力。

通過json_decode(json_encode($object)可以將對象一次性轉(zhuǎn)換為數(shù)組,但是object中遇到非utf-8編碼的非ascii字符則會出現(xià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生成百度sitemap站點(diǎn)地圖類函數(shù)實(shí)例

    php生成百度sitemap站點(diǎn)地圖類函數(shù)實(shí)例

    這篇文章主要介紹了php生成百度sitemap站點(diǎn)地圖類函數(shù)的方法,詳細(xì)講述了百度站點(diǎn)sitemap的實(shí)現(xiàn)方法與注意事項(xiàng),在web站點(diǎn)的建設(shè)中非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • PHP中ob_start函數(shù)的使用說明

    PHP中ob_start函數(shù)的使用說明

    本文是對PHP中ob_start函數(shù)的使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • PHP中is_file不能替代file_exists的理由

    PHP中is_file不能替代file_exists的理由

    首先要提出的問題是,is_file真的可以替代file_exists使用嗎?答案是否定的。為什么?原因很簡單,is_file有緩存
    2014-03-03
  • PHP中預(yù)定義的6種接口介紹

    PHP中預(yù)定義的6種接口介紹

    這篇文章主要介紹了PHP中預(yù)定義的6種接口介紹,本文講解了Traversable、Iterator、IteratorAggregate、ArrayAccess、Serializable、Closure,需要的朋友可以參考下
    2015-05-05
  • PHP單文件上傳原理及上傳函數(shù)的封裝操作示例

    PHP單文件上傳原理及上傳函數(shù)的封裝操作示例

    這篇文章主要介紹了PHP單文件上傳原理及上傳函數(shù)的封裝操作,結(jié)合實(shí)例形式詳細(xì)分析了php文件上傳的原理、步驟及相關(guān)函數(shù)封裝操作技巧,需要的朋友可以參考下
    2019-09-09
  • 使用PHPExcel操作Excel用法實(shí)例分析

    使用PHPExcel操作Excel用法實(shí)例分析

    這篇文章主要介紹了使用PHPExcel操作Excel用法,實(shí)例分析了使用PHPExcel進(jìn)行讀寫及生成等常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php生成圖片縮略圖的方法

    php生成圖片縮略圖的方法

    這篇文章主要介紹了php生成圖片縮略圖的方法,涉及php操作圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • PHP讀取xml方法介紹

    PHP讀取xml方法介紹

    在php開發(fā)中,我們經(jīng)常會越到讀取xml文件的情況,這里簡單總結(jié)下一些方法,方便需要的朋友
    2013-01-01
  • PHP緩存集成庫phpFastCache用法

    PHP緩存集成庫phpFastCache用法

    這篇文章主要介紹了PHP緩存集成庫phpFastCache用法,包括基本用法的分析與操作實(shí)例,在PHP項(xiàng)目開發(fā)中非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12
  • php數(shù)組函數(shù)序列之sort() 對數(shù)組的元素值進(jìn)行升序排序

    php數(shù)組函數(shù)序列之sort() 對數(shù)組的元素值進(jìn)行升序排序

    sort() 函數(shù)按升序?qū)o定數(shù)組的值排序。注釋:本函數(shù)為數(shù)組中的單元賦予新的鍵名。原有的鍵名將被刪除
    2011-11-11

最新評論