javascript、php数组对象互转类

一、javascript:

  1. 代码:

    /*
    @desc:数组和对象互转类
    @param data 待转换的数据
    */
    function arrobj(data){
    this.data = data
    /*
     @desc:对象转数组
     */
    this.objtoarr = function(){
        var data = this.data
        var arr = new Array()
        for(var i in data){
            for(var j in data[i]){
                arr[j] = {}
            }
        }
        for(var i in data){
            for(var j=0;j<data[i].length;j++){
                arr[j][i] = data[i][j]
            }
        }
        return arr
    }
    /*
     @desc:数组转对象
     */
    this.arrtoobj = function(){
        var data = this.data
        var obj = {}
        for(var i in data){
            for(var j in data[i]){
                obj[j] = new Array()
            }
        }
        for(var i in data){
            for(var j in data[i]){
                obj[j][i] = data[i][j]
            }
        }
        return obj
    }
    }
  2. 测试:
    var data = {
    id:[1,2,3],
    title:[‘title1‘,‘title2‘,‘title3‘],
    content:[‘content1‘,‘content2‘,‘content3‘]
    }
    var arrobj = new arrobj(data)
    var ret = arrobj.objtoarr()
    console.log(ret)
  3. 输出:
    [ { id: 1, title: ‘title1‘, content: ‘content1‘ },
    { id: 2, title: ‘title2‘, content: ‘content2‘ },
    { id: 3, title: ‘title3‘, content: ‘content3‘ } ]

    二、php:

  4. 代码:
    /**
    * @desc:对象与数组互转类
    * @author [Lee] <[<[email protected]>]>
    * @property
    *      data 传入的数据
    * @method
    *      objtoarr  对象转数组
    *      arrtoobj  数组转对象
    */
    class arrobj{
    private $data;
    /*
     @desc:构造方法,实例化待转换数据
     */
    public function __construct($data){
        $this->data = $data;
    }
    /*
     @desc:对象转数组
     */
    public function objtoarr(){
        $data = $this->data;
        $arr = array();
        foreach($data as $k=>$v){
            foreach($v as $k1=>$v1){
                $arr[$k1][$k] = $v1;
            }
        }
        return $arr;
    }
    /*
     @desc:数组转对象
     */
    public function arrtoobj(){
        $data = $this->data;
        $obj = array();
        foreach($data as $k=>$v){
            foreach($v as $k1=>$v1){
                $arr[$k1][$k] = $v1;
            }
        }
        return $arr;
    }
    }
  5. 测试:
    $data = array(
        ‘id‘ => array(1,2),
        ‘title‘ => array(‘title1‘,‘title2‘),
        ‘content‘ => array(‘content1‘,‘content2‘)
    );
    $arrobj = new arrobj($data);
    $ret = $arrobj->arrtoobj();
    var_dump($ret);
  6. 输出:
    array(2) {
    [0]=>
    array(3) {
    ["id"]=>
    int(1)
    ["title"]=>
    string(6) "title1"
    ["content"]=>
    string(8) "content1"
    }
    [1]=>
    array(3) {
    ["id"]=>
    int(2)
    ["title"]=>
    string(6) "title2"
    ["content"]=>
    string(8) "content2"
    }
    }

原文地址:http://blog.51cto.com/12173069/2127541

时间: 2024-10-10 13:36:49

javascript、php数组对象互转类的相关文章

JavaScript 浅析数组对象与类数组对象

数组(Array对象) 数组的操作 创建数组方法 添加与修改数组元素 删除数组元素 使用数组元素 遍历数组元素 多维数组 数组相关的函数 concat() join() pop() push() shift() unshift() reverse() sort() slice() splice() 类数组对象 定义 举例 对比数组 转换 间接 直接 数组(Array对象) 数组就是一组数据. 在JavaScript中没有数组这种数据类型.数组时对象创建的. 键(下标): 用于区分数组中不同数值的

Javascript类型系统[数组,对象,数据类型]

JavaScript类型系统 1.var a = [1,11,22,33];  //[]声明数组,数组有个天生的属性length a. 用var 声明的a--是变量,也是对象[既然是对象,它可被赋值任何对象,如数组]. b.运用数组非常灵活,可随时赋值[任何类型],数组长度[容量]自动扩充加长. c.数组索引从0开始. d.数组内元素,可以是其他数组对象.如再赋值 b = ["rty","ljh",123]; a[5]=b;    或a[6]=["rty&

JavaScript中数组对象详解

Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var list=new Array(); 2.var list=new Array(size); 3.var list=new Array(element0,element1,...elementn); 2.字面量的方式 var Array[element0,element1,...elementn]; 举例

JavaScript之数组对象

Array类型是ECMAScript中最常用的类型了. 一.声明方式 1.使用Array构造函数 var arr1 = new Array(); 如果预先知道要保存数组的数量, 也可以给构造函数传递该数量,该数量会自动变成length属性值. var str = new Array(10); console.log(str.length) // 10 也可以向数组中传递包含的值. var arr = new Array('hello', 'world', 'js'); console.log(a

JavaScript Array数组对象

<DOCTYPE html> <html> <head> <title>数组</title> </head> <body> <script type="text/javascript"> //1.无参构造函数,创建一空数组 // var a1=new Array(1,2,3,4); //document.write(a1) var a = new Array(); a[0] = "

PHP数组对象互转

//数组转对象 function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj; } //对象转数组 function object2array($object) { if (is_object($object)) {

JavaScript——Array 数组对象

数组方法: 关于slice: 关于sort: >arrayObject.sort(方法函数) 方法函数:可选,规定排序顺序,必须是函数. 如果不指定<方法函数>,则按unicode码顺序排列: 如果指定<方法函数>,则按<方法函数>所指定的排序方法排序. >方法函数: 该函数要比较两个值,然后返回一个用于说明这两个值相对顺序的数字. 比较函数应该具有两个参数a,b,其返回值如下: 若返回值<=-1,则表示A在排序后的序列中出现在B之前. 若返回值>

javascript删除数组/对象中的元素

一.数组: 代码: /* @desc:删除数组中的元素 @param arr 原数组 @param item 数组索引,只能是数字索引 @param len 要删除的长度 @return arr 删除元素后的数组 */ function unset(arr,item,len = 1){ arr.splice(item,len) return arr } 测试: var arr = new Array(1,2,3,4) var ret = unset(arr,1,2) console.log(re

Effective JavaScript Item 51 在类数组对象上重用数组方法

Array.prototype对象上的标准方法被设计为也可以在其它对象上重用 - 即使不是继承自Array的对象.因此,在JavaScript中存折一些类数组对象(Array-like Objects). 一个典型的例子是函数的arguments对象,在Item 22中对它进行过介绍.该对象并不继承自Array.prototype,所以我们不能直接调用arguments.forEach来对其中的元素进行遍历.但是,我们可以通过首先得到forEach方法的对象,然后调用call方法(可以参考Ite