douke7274 2017-02-01 08:04
浏览 49
已采纳

PHP数组与相同的键合并

I try to merge 2 arrays where keys are same.

This is my array:

[username] => Array
    (
        [3805120] => 5
        [3805121] => 7
    )

[login] => Array
    (
        [3805120] => 9
        [3805121] => 11
    )

I need something like this:

[3805120] => Array
    (
        [0] => 5
        [1] => 9
    )

[3805121] => Array
    (
        [0] => 7
        [1] => 11
    )
  • 写回答

2条回答 默认 最新

  • dongnius85154 2017-02-01 08:09
    关注

    Pretty simple. You need a nested loop that sets the subarray's keys as the new array's keys and use the [] in order the new values will be "added" to the array with an auto increase value [0,1,...n].

    [username] => Array ( [3805120] => 5 [3805121] => 7 )

    [login] => Array ( [3805120] => 9 [3805121] => 11 )

    // $array is the original array
    $newArray = array();
    
    foreach($array as $key => $subarray){
      //key: username, login
      foreach($subarray as $j => $k){
        //j: 3805120, 3805121
        //k: 5,7,9,11
        $newArray[$j][] = $k;
        //1st round: $newArray[3805120][0] = 5, $newArray[3805121][0] = 7
        //2nd round: $newArray[3805120][1] = 9, $newArray[3805121][1] = 11 
      }
    }
    
    var_dump($newArray);
    

    Output:

    array(2) { [3805120]=> array(2) { [0]=> string(1) "5" [1]=> string(1) "9" } [3805121]=> array(2) { [0]=> string(1) "7" [1]=> string(2) "11" } }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?