溫馨提示×

溫馨提示×

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

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

javascript與php類型轉(zhuǎn)換類

發(fā)布時間:2020-07-12 13:18:06 來源:網(wǎng)絡(luò) 閱讀:421 作者:Lee_吉 欄目:web開發(fā)

一、javascript:

  1. 代碼:
    /**
    * 類型轉(zhuǎn)換類
    * @author [lee] <[<www.dollarphp.com>]>
    */
    function translation(data){
    this.data = new Array()
    this.info = new Array()
    this.init = function(){
        this.data = data
    }
    this.todo = function(){
        data = this.data
        info = this.info
        for(var i in info){
            for(var j in data){
                for(var k in data[j]){
                    if(i==k){
                        if(info[i]=='bool'){
                            data[j][k] = Boolean(data[j][k])
                        }else if(info[i]=='string'){
                            data[j][k] = String(data[j][k])
                        }else if(info[i]=='int'){
                            data[j][k] = Number(data[j][k]).toFixed(0)
                        }else if(info[i]=='float'){
                            data[j][k] = Number(data[j][k])
                        }else if(info[i]=='array'){
                            data[j][k] = Array(data[j][k])
                        }else if(info[i]=='object'){
                            data[j][k] = Object(data[j][k])
                        }
                    }
                }
            }
        }
        this.data = data
    }
    this.translate = function(info){
        this.info = info
        this.todo()
        return this.data
    }
    }
    var data = new Array(
        {
            id:'1',
            sex:0,
            name:'zhang',
            pics:new Array('a.png','b.png')
        },
        {
            id:'2',
            sex:'0',
            name:'li',
            pics:new Array('c.png','d.png')
        },
        {
            id:'5',
            sex:'true',
            name:'5',
            pics:new Array('e.png','f.png')
        }
    )
    var arr = {
        id:'int',
        sex:'bool',
        name:'string',
        pics:'array'
    }
    var translation = new translation(data)
    translation.init()
    var ret = translation.translate(arr)
    console.log(ret);
  2. 輸出:
    [ { id: '1', sex: false, name: 'zhang', pics: [ [Array] ] },
    { id: '2', sex: true, name: 'li', pics: [ [Array] ] },
    { id: '5', sex: true, name: '5', pics: [ [Array] ] } ]

    二、php:

  3. 代碼:
    <?php
    /**
    * 類型轉(zhuǎn)換類
    * @author [lee] <[<www.dollarphp.com>]>
    */
    class translation{
    private $data;
    private $info;
    public function __construct($data){
        $this->data = $data;
    }
    private function todo(){
        $data = $this->data;
        $info = $this->info;
        foreach($info as $k=>$v){
            foreach($data as $k1=>$v1){
                foreach($v1 as $k2=>$v2){
                    if($k==$k2){
                        if($v=='bool'){
                            $data[$k1][$k2] = (bool)$v2;
                        }elseif($v=='string'){
                            $data[$k1][$k2] = (string)$v2;
                        }elseif($v=='int'){
                            $data[$k1][$k2] = (int)$v2;
                        }elseif($v=='float'){
                            $data[$k1][$k2] = (float)$v2;
                        }elseif($v=='array'){
                            $data[$k1][$k2] = (array)$v2;
                        }elseif($v=='object'){
                            $data[$k1][$k2] = (object)$v2;
                        }
                    }
                }
            }
        }
        $this->data = $data;
    }
    public function translate($info){
        $this->info = $info;
        $this->todo();
        return $this->data;
    }
    }
    $data = array(
        array(
            id=>'1',
            sex=>'true',
            name=>'zhang',
            pics=>array('a.png','b.png')
        ),
        array(
            id=>'2',
            sex=>'true',
            name=>'li',
            pics=>array('c.png','d.png')
        ),
        array(
            id=>'5',
            sex=>'true',
            name=>'5',
            pics=>array('e.png','f.png')
        )
    );
    $arr = array(
        id=>'int',
        sex=>'bool',
        name=>'string',
        pics=>'array'
    );
    $translation = new translation($data);
    $data = $translation->translate($arr);
    var_dump($data);
  4. 輸出:
    array(3) {
    [0]=>
    array(4) {
    ["id"]=>
    int(1)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(5) "zhang"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "a.png"
      [1]=>
      string(5) "b.png"
    }
    }
    [1]=>
    array(4) {
    ["id"]=>
    int(2)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(2) "li"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "c.png"
      [1]=>
      string(5) "d.png"
    }
    }
    [2]=>
    array(4) {
    ["id"]=>
    int(5)
    ["sex"]=>
    bool(true)
    ["name"]=>
    string(1) "5"
    ["pics"]=>
    array(2) {
      [0]=>
      string(5) "e.png"
      [1]=>
      string(5) "f.png"
    }
    }
    }
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI