从两个键数组中查找重复项并对不同的键求和

我有数组:


$array = [

  0 => [

    0 => 1500

    1 => 994

    2 => 155

    3 => 530

  ]

  1 => [

    0 => 1500

    1 => 994

    2 => 9314

    3 => 11

  ]

  2 => [

    0 => 25

    1 => 5

    2 => 63

    3 => 47

  ]

  3 => [

    0 => 1500

    1 => 994

    2 => 3

    3 => 51

  ]];

如果$array[key][0]and$array[key][1]具有相同的值,那么我只需要对重复的 and进行求和$array[key][2],然后组合成一个键。$array[key][3]$array[key][0]$array[key][1]


这就是我想要实现的目标:


$array = [

  0 => [

    0 => 1500

    1 => 994

    2 => 9472

    3 => 592

  ]

  1 => [

    0 => 25

    1 => 5

    2 => 63

    3 => 47

  ]];

第一个和第二个值(1500 和 994)必须保持不变。


感谢您的回答!


POPMUISE
浏览 95回答 1
1回答

料青山看我应如是

$array = [&nbsp; 0 => [&nbsp; &nbsp; 0 => 1500,&nbsp; &nbsp; 1 => 994,&nbsp; &nbsp; 2 => 155,&nbsp; &nbsp; 3 => 530,&nbsp; ],&nbsp; 1 => [&nbsp; &nbsp; 0 => 1500,&nbsp; &nbsp; 1 => 994,&nbsp; &nbsp; 2 => 9314,&nbsp; &nbsp; 3 => 11,&nbsp; ],&nbsp; 2 => [&nbsp; &nbsp; 0 => 25,&nbsp; &nbsp; 1 => 5,&nbsp; &nbsp; 2 => 63,&nbsp; &nbsp; 3 => 47,&nbsp; ],&nbsp; 3 => [&nbsp; &nbsp; 0 => 1500,&nbsp; &nbsp; 1 => 994,&nbsp; &nbsp; 2 => 3,&nbsp; &nbsp; 3 => 51,&nbsp; ],];&nbsp; // create composite array key&nbsp;&nbsp; $newArray = [];&nbsp; foreach($array as $item) {&nbsp; &nbsp; &nbsp; $compositeKey = $item[0] . '-' . $item[1];&nbsp; &nbsp; &nbsp; $newArray[$compositeKey] = [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $item[0],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $item[1],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isset($newArray[$compositeKey][2]) ? $newArray[$compositeKey][2] + $item[2] : $item[2],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isset($newArray[$compositeKey][3]) ? $newArray[$compositeKey][3] + $item[3] : $item[3],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ];&nbsp; }&nbsp; echo '<pre>';&nbsp; print_r(array_values($newArray));&nbsp; echo '</pre>';输出:Array(&nbsp; &nbsp; [0] => Array&nbsp; &nbsp; &nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] => 1500&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [1] => 994&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [2] => 9472&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [3] => 592&nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; [1] => Array&nbsp; &nbsp; &nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] => 25&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [1] => 5&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [2] => 63&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [3] => 47&nbsp; &nbsp; &nbsp; &nbsp; ))http://sandbox.onlinephpfunctions.com/code/940f06c43338d9785b7c47548a0dcbf6e4b2cd75
打开App,查看更多内容
随时随地看视频慕课网APP