[php]數組與對象的轉換


  1. 1:強制裝換
  2. function object_array($array) {  
  3.     if(is_object($array)) {  
  4.         $array = (array)$array;  
  5.     } 
  6.     if(is_array($array)) {
  7.         foreach($array as $key=>$value) {  
  8.             $array[$key] = object_array($value);  
  9.         }  
  10.     }  
  11.     return $array;  
  12. }
  13. 2:json_decode強制轉換
  14. $array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);
  15. 3:同1
  16. function object2array_pre(&$object) {
  17.     if (is_object($object)) {
  18.         $arr = (array)($object);
  19.     } else {
  20.         $arr = &$object;
  21.     }
  22.     if (is_array($arr)) {
  23.         foreach($arr as $varName => $varValue){
  24.             $arr[$varName] = $this->object2array($varValue);
  25.         }
  26.     }
  27.     return $arr;
  28. }
  29. 4.如果是10W的數據量的話,執行要進1s,結構再複雜些,可以達到3s,性能太差了,可以用以下替換:
  30. function object2array(&$object) {
  31.     $object =  json_decode( json_encode( $object),true);
  32.     return  $object;
  33. }


  1. function arr_to_obj($arr){
  2. if(is_array($arr)){
  3. $obj=new StdClass();
  4. foreach($arr as $k=>$v){
  5. $obj->$k=$v;
  6. }
  7. }else{
  8. $obj=$arr;
  9. }
  10. return $obj;
  11. }
  12. function obj_to_arr($obj){
  13. if(is_object($obj)){
  14. foreach($obj as $k=>$v){
  15. $arr[$k]=$v;
  16. }
  17. }else{
  18. $arr=$obj;
  19. }
  20. return $arr;
  21. }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章