溫馨提示×

溫馨提示×

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

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

javascript與php一維數(shù)組與二維數(shù)組互轉(zhuǎn)

發(fā)布時間:2020-03-28 02:38:15 來源:網(wǎng)絡 閱讀:1263 作者:Lee_吉 欄目:web開發(fā)

一、php:

  1. 一維轉(zhuǎn)二維:
    a. 代碼:
    /*
    @desc:一維數(shù)組轉(zhuǎn)二維數(shù)組
    @param data 需要轉(zhuǎn)換的數(shù)組
    @param key 主鍵
    @return ret 轉(zhuǎn)換后的數(shù)組
    */
    function onetomore($data,$key){
    $ret = array();
    foreach($data as $v){
        $arr = array();
        foreach($v as $k1=>$v1){
            if($k1 != $key){
                $arr[$k1] = $v1;
            }
        }
        $ret[$v[$key]][] = $arr;
    }
    return $ret;
    }

    b. 測試:

    $data = array(
    array(
        'user_id' => 1,
        'role_id' => 1,
        'user_nick' => 'a'
    ),
    array(
        'user_id' => 2,
        'role_id' => 1,
        'user_nick' => 'b'
    ),
    array(
        'user_id' => 3,
        'role_id' => 2,
        'user_nick' => 'c'
    )
    );
    $ret = onetomore($data,'role_id');
    var_dump($ret);

    c. 輸出:

    array(2) {
    [1]=>
    array(2) {
    [0]=>
    array(2) {
      ["user_id"]=>
      int(1)
      ["user_nick"]=>
      string(1) "a"
    }
    [1]=>
    array(2) {
      ["user_id"]=>
      int(2)
      ["user_nick"]=>
      string(1) "b"
    }
    }
    [2]=>
    array(1) {
    [0]=>
    array(2) {
      ["user_id"]=>
      int(3)
      ["user_nick"]=>
      string(1) "c"
    }
    }
    }
  2. 二維轉(zhuǎn)一維:
    a. 代碼:
    /*
    @desc:二維數(shù)組轉(zhuǎn)一維數(shù)組
    @param data 需要轉(zhuǎn)換的數(shù)組
    @param key 主鍵
    @return ret 轉(zhuǎn)換后的數(shù)組
    */
    function moretoone($data,$key){
    $ret = array();
    $count = 0;
    foreach($data as $k=>$v){
        foreach($v as $v1){
            $ret[$count] = $v1;
            $ret[$count][$key] = $k;
            $count ++;
        }
    }
    return $ret;
    }

    b. 測試:

    $data = array(
    1 => array(
        array(
            "user_id" => 1,
            "user_nick" => 'a'
        ),
        array(
            "user_id" => 2,
            "user_nick" => 'b'
        )
    ),
    2 => array(
        array(
            "user_id" => 3,
            "user_nick" => 'c'
        )
    )
    );
    $ret = moretoone($data,'role_id');
    var_dump($ret);

    c. 輸出:

    array(3) {
    [0]=>
    array(3) {
    ["user_id"]=>
    int(1)
    ["user_nick"]=>
    string(1) "a"
    ["role_id"]=>
    int(1)
    }
    [1]=>
    array(3) {
    ["user_id"]=>
    int(2)
    ["user_nick"]=>
    string(1) "b"
    ["role_id"]=>
    int(1)
    }
    [2]=>
    array(3) {
    ["user_id"]=>
    int(3)
    ["user_nick"]=>
    string(1) "c"
    ["role_id"]=>
    int(2)
    }
    }

    二、javascript:

  3. 一維轉(zhuǎn)二維:
    a. 代碼:
    /*
    @desc:一維數(shù)組轉(zhuǎn)二維數(shù)組
    @param data 需要轉(zhuǎn)換的數(shù)組
    @param key 主鍵
    @return ret 轉(zhuǎn)換后的數(shù)組
    */
    function onetomore(data,key){
    var ret = {}
    for(var i in data){
        ret[data[i][key]] = new Array()
    }
    for(var i in data){
        var arr = {}
        for(var j in data[i]){
            if(j != key){
                arr[j] = data[i][j]
            }
        }
        ret[data[i][key]].push(arr)
    }
    return ret
    }

    b. 測試:

    var data = new Array(
        {
            'uesr_id':1,
            'role_id':1,
            'user_nick':'a'
        },
        {
            'uesr_id':2,
            'role_id':1,
            'user_nick':'b'
        },
        {
            'uesr_id':3,
            'role_id':2,
            'user_nick':'c'
        }
    )
    var ret = onetomore(data,'role_id')
    console.log(ret)

    c. 輸出:

    { '1': 
    [ { uesr_id: 1, user_nick: 'a' },
     { uesr_id: 2, user_nick: 'b' } ],
    '2': [ { uesr_id: 3, user_nick: 'c' } ] }
  4. 二維轉(zhuǎn)一維:
    a. 代碼:
    /*
    @desc:二維數(shù)組轉(zhuǎn)一維數(shù)組
    @param data 需要轉(zhuǎn)換的數(shù)組
    @param key 主鍵
    @return ret 轉(zhuǎn)換后的數(shù)組
    */
    function moretoone(data,key){
    var ret = new Array()
    var count = 0
    for(var i in data){
        ret[count] = {}
        for(var j in data[i]){
            ret[count] = data[i][j]
            ret[count][key] = i
            count ++
        }
    }
    return ret
    }

    b. 測試:

    var data = {
    1:new Array(
            {
                'user_id':1,
                'user_nick':'a'
            },
            {
                'user_id':2,
                'user_nick':'b'
            }
        ),
    2:new Array(
            {
                'user_id':3,
                'user_nick':'c'
            }
        )
    }
    var ret = moretoone(data,'role_id')
    console.log(ret)

    c. 輸出:

    [ { user_id: 1, user_nick: 'a', role_id: '1' },
    { user_id: 2, user_nick: 'b', role_id: '1' },
    { user_id: 3, user_nick: 'c', role_id: '2' } ]
向AI問一下細節(jié)

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

AI