javascript与php类型转换类
admin
2023-06-13 21:22:42
0

一、javascript:

  1. 代码:
    /**
    * 类型转换类
    * @author [lee] <[]>
    */
    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. 代码:
    ]>
    */
    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"
    }
    }
    }

相关内容

热门资讯

原创 2... 来源:网络消息 当自然指数最新一期数据揭晓,中国科学技术大学以1021.18分的总论文分数,稳居中...
阿里云新加坡连发多款AI新品,... 南都N视频记者了解获悉,5月26日,阿里云在新加坡面向海外市场发布一系列AI更新产品:官网Qwen ...
全网刷屏的华为“韬定律”,到底... 2026年5月,上海。华为发布: 韬(τ)定律。 报道原文,是这么写的: ……近年来,摩尔定律...
消息称国产头部旗舰集体测试抗反... 【CNMO科技消息】5月26日,数码博主“智慧皮卡丘”爆料称,国内市场排名前五的手机厂商下一代旗舰机...
伊朗被曝寻求解冻240亿美元资... 据伊朗方面当地时间5月26日消息,伊朗议长卡利巴夫在访问卡塔尔期间推动解冻伊朗240亿美元资金。伊方...
空调压缩机嗡嗡响不启动 原因可能是压缩机卡缸了,可以关闭空调一会再重新启动,如果还是不行就需要让维修人员来处理看,因为卡缸的...
空调压缩机不制冷是什么原因造成... 原因可能是空调缺氟漏氟了,可以修补好泄漏点再添加适量的氟利昂;原因可能是压缩机长时间处于负载的情况下...
格力空调一开机就跳闸是怎么回事 原因可能是是触电保护器容量过低,导致脱扣机构变形。虽然平时看不出来,但是当空调打开时,它就会超负荷跳...
一开空调就跳闸咋回事 开空调跳闸是一种很常见的问题,它在许多家庭中都会出现。这种问题可能由多种因素引起,下面是一些可能的原...
中央空调压缩机怎么跟换 中央空调是目前商业和工业建筑中常用的空气处理设备,其中压缩机是中央空调系统的核心部件。如果压缩机出现...