最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間: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)文章

最新評論

揭阳市| 额尔古纳市| 永福县| 拜泉县| 平武县| 思茅市| 长顺县| 金昌市| 云林县| 沁源县| 南投县| 屯昌县| 来凤县| 西华县| 广汉市| 肇东市| 苏尼特右旗| 大庆市| 海林市| 汉阴县| 申扎县| 徐汇区| 方山县| 炉霍县| 资溪县| 台安县| 白玉县| 肇源县| 万盛区| 邢台市| 东源县| 隆尧县| 山东省| 贵定县| 静乐县| 长葛市| 吉首市| 巴楚县| 饶阳县| 鄂尔多斯市| 望谟县|