javascript與php一維數組與二維數組互轉

來源:互聯網
上載者:User

標籤:asc   param   var_dump   nic   php   console   OLE   代碼   user   

一、php:
  1. 一維轉二維:
    a. 代碼:
    /*@desc:一維數組轉二維數組@param data 需要轉換的數組@param key 主鍵@return ret 轉換後的數組*/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. 二維轉一維:
    a. 代碼:
    /*@desc:二維數組轉一維數組@param data 需要轉換的數組@param key 主鍵@return ret 轉換後的數組*/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. 一維轉二維:
    a. 代碼:
    /*@desc:一維數組轉二維數組@param data 需要轉換的數組@param key 主鍵@return ret 轉換後的數組*/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. 二維轉一維:
    a. 代碼:
    /*@desc:二維數組轉一維數組@param data 需要轉換的數組@param key 主鍵@return ret 轉換後的數組*/function moretoone(data,key){var ret = new Array()var count = 0for(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‘ } ]

javascript與php一維數組與二維數組互轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.