xml、json、數(shù)組、對象格式轉(zhuǎn)換

XML格式轉(zhuǎn)換成數(shù)組

    function xmlToArray($xml)
    { 
 
     //禁止引用外部xml實體 
     
    libxml_disable_entity_loader(true); 
     
    $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);  //這個時候出來的是對象形式
     
    $val = json_decode(json_encode($xmlstring),true);   //先把對象轉(zhuǎn)換成json,然后再解析成數(shù)組
     
    return $val; 
 
    }

    /**
     * 將搜索的數(shù)組拼接成為url
     * 注意:PHP的內(nèi)置函數(shù)http_build_query,會自動將沒有值的參數(shù)清除,導(dǎo)致blade模板報錯
     * @param $array
     * @return string
     */
    public function arrayToSearchStr($array)
    {
        $fields_string = '';

        reset($array);
        end($array);
        $lastKey = key($array);
        reset($array);

        foreach ($array as $key => $value) {
            if ($key != $lastKey) {
                $fields_string .= $key . '=' . $value . '&';
            } else {
                $fields_string .= $key . '=' . $value;
            }
        }
        rtrim($fields_string, '&');

        return $fields_string;
    }

    //數(shù)組轉(zhuǎn)換成對象
    public function arrayToObject($e)
    {

        if (gettype($e) != 'array') return;
        foreach ($e as $k => $v) {
            if (gettype($v) == 'array' || getType($v) == 'object')
                $e[$k] = (object)$this->arrayToObject($v);
        }
        return (object)$e;
    }
    //對象轉(zhuǎn)換成數(shù)組
    public function objectToArray($e)
    {
        $e = (array)$e;
        foreach ($e as $k => $v) {
            if (gettype($v) == 'resource') return;
            if (gettype($v) == 'object' || gettype($v) == 'array')
                $e[$k] = (array)$this->objectToArray($v);
        }
        return $e;
    }

  • 二維數(shù)組轉(zhuǎn)一維數(shù)組
//把二維數(shù)組合并為一維數(shù)組
$newarray = array();
foreach ($datas as $data){
    if(empty($data[0])) continue;
    $newarray = array_merge($newarray,$data);
}

  • 把字符串轉(zhuǎn)換成想要的數(shù)組數(shù)據(jù)
$str = 'name=long^Bankco=WX';
$arr = explode('^',$str);
//print_r($arr);
$array = array();
foreach ($arr as $k => $v) {
    $arrnew = explode('=',$v);
   $array[$arrnew[0]] = $arrnew[1];
   $array[$arrnew[0]] = $arrnew[1];
}

print_r($array);

數(shù)組轉(zhuǎn)XML格式

/**
 *   將數(shù)組轉(zhuǎn)換為xml
 *    @param array $data    要轉(zhuǎn)換的數(shù)組
 *   @param bool $root     是否要根節(jié)點
 *   @return string         xml字符串
 *    @author Dragondean
 *    @url    http://www.cnblogs.com/dragondean
 */
function arrayToXml($arr){
    $xml = "<root>";
    foreach ($arr as $key=>$val){
        if(is_array($val)){
            $xml.="<".$key.">".arrayToXml($val)."</".$key.">";
        }else{
            $xml.="<".$key.">".$val."</".$key.">";
        }
    }
    $xml.="</root>";
    return $xml;
}



function arrayToXml($arr,$dom=0,$item=0){
    if (!$dom){
        $dom = new DOMDocument("1.0");
    }
    if(!$item){
        $item = $dom->createElement("root");
        $dom->appendChild($item);
    }
    foreach ($arr as $key=>$val){
        $itemx = $dom->createElement(is_string($key)?$key:"item");
        $item->appendChild($itemx);
        if (!is_array($val)){
            $text = $dom->createTextNode($val);
            $itemx->appendChild($text);

        }else {
            arrayToXml($val,$dom,$itemx);
        }
    }
    return $dom->saveXML();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容