91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何將對象強制轉數組

發布時間:2021-03-15 10:03:57 來源:億速云 閱讀:309 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關php如何將對象強制轉數組的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

php將對象強制轉數組的方法:1、通過定義的“object_array”方法轉換;2、通過“json_decode”方法轉換;3、通過定義的“object2array_pre”方法轉換。

php的對象轉數組

1.

//PHP stdClass Object轉array  
function object_array($array) {  
    if(is_object($array)) {  
        $array = (array)$array;  
    } 
    if(is_array($array)) {
        foreach($array as $key=>$value) {  
            $array[$key] = object_array($value);  
        }  
    }  
    return $array;  
}

2.

$array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);

3.

function object2array_pre(&$object) {
    if (is_object($object)) {
        $arr = (array)($object);
    } else {
        $arr = &$object;
    }
    if (is_array($arr)) {
        foreach($arr as $varName => $varValue){
            $arr[$varName] = $this->object2array($varValue);
        }
    }
    return $arr;
}

4.如果是10W的數據量的話,執行要進1s,結構再復雜些,可以達到3s,性能太差了,可以用以下替換:

function object2array(&$object) {
    $object =  json_decode( json_encode( $object),true);
    return  $object;
}
json_decode(json_encode($array),true)

  多層數組和對象轉化的用途很簡單,便于處理WebService中多層數組和對象的轉化【推薦學習:《PHP視頻教程》】

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

  通過json_decode(json_encode($object)可以將對象一次性轉換為數組,但是object中遇到非utf-8編碼的非ascii字符則會出現問題,比如gbk的中文,何況json_encode和decode的性能也值得疑慮。

  下面上代碼:

<?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);
?>

感謝各位的閱讀!關于“php如何將對象強制轉數組”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荃湾区| 将乐县| 肃南| 五台县| 永泰县| 苍溪县| 两当县| 达尔| 民丰县| 桐城市| 嘉兴市| 宁城县| 凉城县| 隆子县| 隆安县| 额济纳旗| 山阳县| 镶黄旗| 东平县| 焉耆| 远安县| 通海县| 武平县| 从江县| SHOW| 修水县| 休宁县| 北票市| 江城| 九台市| 东阳市| 敦化市| 荣昌县| 富民县| 利川市| 平顶山市| 泽库县| 乌什县| 旺苍县| 温州市| 抚宁县|