国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

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

2024-05-04 23:12:21
字體:
供稿:網(wǎng)友

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

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

通過json_decode(json_encode($object)可以將對(duì)象一次性轉(zhuǎn)換為數(shù)組,但是object中遇到非utf-8編碼的非ascii字符則會(huì)出現(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);
?>


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文安县| 桐梓县| 永昌县| 海城市| 内江市| 乡城县| 贵港市| 阜阳市| 江阴市| 噶尔县| 都兰县| 德令哈市| 集贤县| 富锦市| 淅川县| 炉霍县| 麻江县| 益阳市| 车险| 南溪县| 中阳县| 洪湖市| 于都县| 安庆市| 谷城县| 安乡县| 工布江达县| 阜康市| 车致| 宁安市| 永年县| 乾安县| 上高县| 固安县| 山阳县| 芜湖县| 营山县| 邯郸市| 托克托县| 正阳县| 隆昌县|