2つの多次元配列をマージしてそれらの値(リーグテーブル)を合計したいのですが、2番目の配列の "clubid"値が最初の配列に存在する場合のみです。重要:新しい配列「フォーム」の値には、2番目の配列のフォーム(チームフォーム)の値と最初の配列のフォームの値が含まれます(1番目の配列のフォームの値がW、L、Dで、2番目の配列の値がD、L、Dの場合、新しい配列形式の値はD、L、D、W、LDである必要があります)
最初の配列:
array (
0 =>
array (
'Team' => 'Midtjylland',
'country' => 'dk',
'clubid' => '2',
'P' => '26',
'W' => '21',
'D' => '2',
'L' => '3',
'F' => '42',
'A' => '14',
'GD' => '28',
'Pts' => '65',
'form' => 'W,L,W,W,W,W,L,W,W,W,W,W,W,W,W,L,D,W,W,W,D,W,W,W,W,W',
),
1 =>
array (
'Team' => 'København',
'country' => 'dk',
'clubid' => '1',
'P' => '26',
'W' => '18',
'D' => '2',
'L' => '6',
'F' => '47',
'A' => '29',
'GD' => '18',
'Pts' => '56',
'form' => 'W,W,L,W,D,L,W,W,W,W,L,W,W,W,L,W,D,L,L,W,W,W,W,W,W,W',
),
2 =>
array (
'Team' => 'AGF',
'country' => 'dk',
'clubid' => '9',
'P' => '26',
'W' => '14',
'D' => '5',
'L' => '7',
'F' => '42',
'A' => '28',
'GD' => '14',
'Pts' => '47',
'form' => 'W,W,D,L,D,W,W,D,W,W,W,W,L,L,L,W,W,W,W,W,W,D,L,L,L,D',
),
3 =>
array (
'Team' => 'Brøndby',
'country' => 'dk',
'clubid' => '4',
'P' => '26',
'W' => '13',
'D' => '3',
'L' => '10',
'F' => '47',
'A' => '37',
'GD' => '10',
'Pts' => '42',
'form' => 'L,W,D,W,L,W,D,L,L,L,W,W,W,W,W,L,L,W,L,L,W,W,L,W,D,W',
),
4 =>
array (
'Team' => 'Nordsjælland',
'country' => 'dk',
'clubid' => '7',
'P' => '26',
'W' => '12',
'D' => '5',
'L' => '9',
'F' => '48',
'A' => '35',
'GD' => '13',
'Pts' => '41',
'form' => 'L,W,D,W,W,W,W,L,D,W,D,L,L,W,D,L,W,L,W,L,W,D,L,W,L,W',
),
5 =>
array (
'Team' => 'AaB',
'country' => 'dk',
'clubid' => '6',
'P' => '26',
'W' => '11',
'D' => '5',
'L' => '10',
'F' => '44',
'A' => '33',
'GD' => '11',
'Pts' => '38',
'form' => 'L,D,W,L,W,W,L,D,D,W,D,L,W,W,W,L,L,L,W,W,L,W,L,W,D,L',
),
6 =>
array (
'Team' => 'Randers',
'country' => 'dk',
'clubid' => '8',
'P' => '26',
'W' => '10',
'D' => '5',
'L' => '11',
'F' => '39',
'A' => '35',
'GD' => '4',
'Pts' => '35',
'form' => 'L,L,D,L,W,D,W,L,W,L,D,W,L,L,W,W,W,W,W,L,L,L,W,D,D,L',
),
7 =>
array (
'Team' => 'Horsens',
'country' => 'dk',
'clubid' => '10',
'P' => '26',
'W' => '10',
'D' => '4',
'L' => '12',
'F' => '25',
'A' => '44',
'GD' => '-19',
'Pts' => '34',
'form' => 'W,W,W,L,L,L,W,D,W,L,W,D,L,W,L,D,L,D,W,L,L,L,W,L,W,L',
),
8 =>
array (
'Team' => 'OB',
'country' => 'dk',
'clubid' => '3',
'P' => '26',
'W' => '9',
'D' => '6',
'L' => '11',
'F' => '34',
'A' => '30',
'GD' => '4',
'Pts' => '33',
'form' => 'W,L,D,D,D,L,L,D,L,L,L,W,W,L,W,W,L,W,D,D,L,W,W,L,W,L',
),
9 =>
array (
'Team' => 'Lyngby',
'country' => 'dk',
'clubid' => '34',
'P' => '26',
'W' => '9',
'D' => '5',
'L' => '12',
'F' => '31',
'A' => '45',
'GD' => '-14',
'Pts' => '32',
'form' => 'D,L,L,L,W,L,W,D,D,D,W,L,W,L,D,W,W,L,L,W,L,L,W,L,L,W',
),
10 =>
array (
'Team' => 'SønderjyskE',
'country' => 'dk',
'clubid' => '11',
'P' => '26',
'W' => '6',
'D' => '9',
'L' => '11',
'F' => '31',
'A' => '44',
'GD' => '-13',
'Pts' => '27',
'form' => 'D,L,D,L,L,W,L,W,L,D,L,L,L,L,W,W,D,D,D,L,D,D,L,W,D,W',
),
11 =>
array (
'Team' => 'Hobro',
'country' => 'dk',
'clubid' => '13',
'P' => '26',
'W' => '3',
'D' => '14',
'L' => '9',
'F' => '25',
'A' => '35',
'GD' => '-10',
'Pts' => '23',
'form' => 'D,W,D,D,L,L,D,D,D,L,D,L,D,L,L,L,D,W,L,D,D,L,W,D,D,D',
),
12 =>
array (
'Team' => 'Esbjerg',
'country' => 'dk',
'clubid' => '5',
'P' => '26',
'W' => '4',
'D' => '6',
'L' => '16',
'F' => '22',
'A' => '44',
'GD' => '-22',
'Pts' => '18',
'form' => 'L,D,D,L,L,W,L,L,L,W,L,D,L,L,L,D,W,L,L,D,W,L,L,L,D,L',
),
13 =>
array (
'Team' => 'Silkeborg',
'country' => 'dk',
'clubid' => '33',
'P' => '26',
'W' => '3',
'D' => '7',
'L' => '16',
'F' => '31',
'A' => '55',
'GD' => '-24',
'Pts' => '16',
'form' => 'D,L,W,D,D,L,L,W,L,L,L,L,D,W,L,L,L,L,L,D,D,D,L,L,L,L',
),
)
2番目の配列:
array (
0 =>
array (
'Team' => 'SønderjyskE',
'country' => 'dk',
'clubid' => '11',
'P' => '6',
'W' => '3',
'D' => '2',
'L' => '1',
'F' => '6',
'A' => '5',
'GD' => '1',
'Pts' => '11',
'form' => 'D,D,W,W,L,W',
),
1 =>
array (
'Team' => 'Silkeborg',
'country' => 'dk',
'clubid' => '33',
'P' => '6',
'W' => '3',
'D' => '1',
'L' => '2',
'F' => '12',
'A' => '4',
'GD' => '8',
'Pts' => '10',
'form' => 'W,W,L,L,D,W',
),
2 =>
array (
'Team' => 'OB',
'country' => 'dk',
'clubid' => '3',
'P' => '6',
'W' => '3',
'D' => '1',
'L' => '2',
'F' => '9',
'A' => '12',
'GD' => '-3',
'Pts' => '10',
'form' => 'L,D,W,W,W,L',
),
3 =>
array (
'Team' => 'Lyngby',
'country' => 'dk',
'clubid' => '34',
'P' => '6',
'W' => '0',
'D' => '2',
'L' => '4',
'F' => '3',
'A' => '9',
'GD' => '-6',
'Pts' => '2',
'form' => 'D,L,L,L,D,L',
),
)
新しい配列では、2番目の配列の1番目の合計を格納したいのですが、最初の配列に2番目の配列のid値が存在する場合のみです。
新しい配列は次のようになります。
[0] => Array
(
[Team] => OB
[country] => dk
[clubid] => 3
[P] => 32
[W] => 12
[D] => 7
[L] => 13
[F] => 43
[A] => 42
[GD] => 1
[Pts] => 43
[form] => L,D,W,W,W,L,W,L,D,D,D,L,L,D,L,L,L,W,W,L,W,W,L,W,D,D,L,W,W,L,W,L
)
[1] => Array
(
[Team] => SønderjyskE
[country] => dk
[clubid] => 11
[P] => 32
[W] => 9
[D] => 11
[L] => 12
[F] => 37
[A] => 49
[GD] => -12
[Pts] => 38
[form] => D,D,W,W,L,W,D,L,D,L,L,W,L,W,L,D,L,L,L,L,W,W,D,D,D,L,D,D,L,W,D,W
)
[2] => Array
(
[Team] => Lyngby
[country] => dk
[clubid] => 34
[P] => 32
[W] => 9
[D] => 7
[L] => 16
[F] => 34
[A] => 54
[GD] => -20
[Pts] => 34
[form] => D,L,L,L,D,L,D,L,L,L,W,L,W,D,D,D,W,L,W,L,D,W,W,L,L,W,L,L,W,L,L,W
)
[3] => Array
(
[Team] => Silkeborg
[country] => dk
[clubid] => 33
[P] => 32
[W] => 6
[D] => 8
[L] => 18
[F] => 43
[A] => 59
[GD] =>-16
[Pts] => 26
[form] => W,W,L,L,D,W,D,L,W,D,D,L,L,W,L,L,L,L,D,W,L,L,L,L,L,D,D,D,L,L,L,L
)
どうすればよいかわからないので、誰かが助けてくれるといいのですが。どうもありがとう。
2つの配列を変換して、clubidをキーとして持ち、簡単にチェックできるようにします。次に、クラブデータの一部を新しい配列に追加したいなど、何でも行います。
$arr1 = array (
0 =>
array (
'Team' => 'Midtjylland',
'country' => 'dk',
'clubid' => '2',
'P' => '26',
'W' => '21',
'D' => '2',
'L' => '3',
'F' => '42',
'A' => '14',
'GD' => '28',
'Pts' => '65',
'form' => 'W,L,W,W,W,W,L,W,W,W,W,W,W,W,W,L,D,W,W,W,D,W,W,W,W,W',
),
1 =>
array (
'Team' => 'København',
'country' => 'dk',
'clubid' => '1',
'P' => '26',
'W' => '18',
'D' => '2',
'L' => '6',
'F' => '47',
'A' => '29',
'GD' => '18',
'Pts' => '56',
'form' => 'W,W,L,W,D,L,W,W,W,W,L,W,W,W,L,W,D,L,L,W,W,W,W,W,W,W',
),
2 =>
array (
'Team' => 'AGF',
'country' => 'dk',
'clubid' => '9',
'P' => '26',
'W' => '14',
'D' => '5',
'L' => '7',
'F' => '42',
'A' => '28',
'GD' => '14',
'Pts' => '47',
'form' => 'W,W,D,L,D,W,W,D,W,W,W,W,L,L,L,W,W,W,W,W,W,D,L,L,L,D',
),
3 =>
array (
'Team' => 'Brøndby',
'country' => 'dk',
'clubid' => '4',
'P' => '26',
'W' => '13',
'D' => '3',
'L' => '10',
'F' => '47',
'A' => '37',
'GD' => '10',
'Pts' => '42',
'form' => 'L,W,D,W,L,W,D,L,L,L,W,W,W,W,W,L,L,W,L,L,W,W,L,W,D,W',
),
4 =>
array (
'Team' => 'Nordsjælland',
'country' => 'dk',
'clubid' => '7',
'P' => '26',
'W' => '12',
'D' => '5',
'L' => '9',
'F' => '48',
'A' => '35',
'GD' => '13',
'Pts' => '41',
'form' => 'L,W,D,W,W,W,W,L,D,W,D,L,L,W,D,L,W,L,W,L,W,D,L,W,L,W',
),
5 =>
array (
'Team' => 'AaB',
'country' => 'dk',
'clubid' => '6',
'P' => '26',
'W' => '11',
'D' => '5',
'L' => '10',
'F' => '44',
'A' => '33',
'GD' => '11',
'Pts' => '38',
'form' => 'L,D,W,L,W,W,L,D,D,W,D,L,W,W,W,L,L,L,W,W,L,W,L,W,D,L',
),
6 =>
array (
'Team' => 'Randers',
'country' => 'dk',
'clubid' => '8',
'P' => '26',
'W' => '10',
'D' => '5',
'L' => '11',
'F' => '39',
'A' => '35',
'GD' => '4',
'Pts' => '35',
'form' => 'L,L,D,L,W,D,W,L,W,L,D,W,L,L,W,W,W,W,W,L,L,L,W,D,D,L',
),
7 =>
array (
'Team' => 'Horsens',
'country' => 'dk',
'clubid' => '10',
'P' => '26',
'W' => '10',
'D' => '4',
'L' => '12',
'F' => '25',
'A' => '44',
'GD' => '-19',
'Pts' => '34',
'form' => 'W,W,W,L,L,L,W,D,W,L,W,D,L,W,L,D,L,D,W,L,L,L,W,L,W,L',
),
8 =>
array (
'Team' => 'OB',
'country' => 'dk',
'clubid' => '3',
'P' => '26',
'W' => '9',
'D' => '6',
'L' => '11',
'F' => '34',
'A' => '30',
'GD' => '4',
'Pts' => '33',
'form' => 'W,L,D,D,D,L,L,D,L,L,L,W,W,L,W,W,L,W,D,D,L,W,W,L,W,L',
),
9 =>
array (
'Team' => 'Lyngby',
'country' => 'dk',
'clubid' => '34',
'P' => '26',
'W' => '9',
'D' => '5',
'L' => '12',
'F' => '31',
'A' => '45',
'GD' => '-14',
'Pts' => '32',
'form' => 'D,L,L,L,W,L,W,D,D,D,W,L,W,L,D,W,W,L,L,W,L,L,W,L,L,W',
),
10 =>
array (
'Team' => 'SønderjyskE',
'country' => 'dk',
'clubid' => '11',
'P' => '26',
'W' => '6',
'D' => '9',
'L' => '11',
'F' => '31',
'A' => '44',
'GD' => '-13',
'Pts' => '27',
'form' => 'D,L,D,L,L,W,L,W,L,D,L,L,L,L,W,W,D,D,D,L,D,D,L,W,D,W',
),
11 =>
array (
'Team' => 'Hobro',
'country' => 'dk',
'clubid' => '13',
'P' => '26',
'W' => '3',
'D' => '14',
'L' => '9',
'F' => '25',
'A' => '35',
'GD' => '-10',
'Pts' => '23',
'form' => 'D,W,D,D,L,L,D,D,D,L,D,L,D,L,L,L,D,W,L,D,D,L,W,D,D,D',
),
12 =>
array (
'Team' => 'Esbjerg',
'country' => 'dk',
'clubid' => '5',
'P' => '26',
'W' => '4',
'D' => '6',
'L' => '16',
'F' => '22',
'A' => '44',
'GD' => '-22',
'Pts' => '18',
'form' => 'L,D,D,L,L,W,L,L,L,W,L,D,L,L,L,D,W,L,L,D,W,L,L,L,D,L',
),
13 =>
array (
'Team' => 'Silkeborg',
'country' => 'dk',
'clubid' => '33',
'P' => '26',
'W' => '3',
'D' => '7',
'L' => '16',
'F' => '31',
'A' => '55',
'GD' => '-24',
'Pts' => '16',
'form' => 'D,L,W,D,D,L,L,W,L,L,L,L,D,W,L,L,L,L,L,D,D,D,L,L,L,L',
),
);
$arr2 = array (
0 =>
array (
'Team' => 'SønderjyskE',
'country' => 'dk',
'clubid' => '11',
'P' => '6',
'W' => '3',
'D' => '2',
'L' => '1',
'F' => '6',
'A' => '5',
'GD' => '1',
'Pts' => '11',
'form' => 'D,D,W,W,L,W',
),
1 =>
array (
'Team' => 'Silkeborg',
'country' => 'dk',
'clubid' => '33',
'P' => '6',
'W' => '3',
'D' => '1',
'L' => '2',
'F' => '12',
'A' => '4',
'GD' => '8',
'Pts' => '10',
'form' => 'W,W,L,L,D,W',
),
2 =>
array (
'Team' => 'OB',
'country' => 'dk',
'clubid' => '3',
'P' => '6',
'W' => '3',
'D' => '1',
'L' => '2',
'F' => '9',
'A' => '12',
'GD' => '-3',
'Pts' => '10',
'form' => 'L,D,W,W,W,L',
),
3 =>
array (
'Team' => 'Lyngby',
'country' => 'dk',
'clubid' => '34',
'P' => '6',
'W' => '0',
'D' => '2',
'L' => '4',
'F' => '3',
'A' => '9',
'GD' => '-6',
'Pts' => '2',
'form' => 'D,L,L,L,D,L',
),
);
//convert the arrays to have a usable key i.e. the clubid
foreach( $arr1 as $a){
$t1[$a['clubid']] = $a;
}
//make an array with a usable key i.e. the clubid
foreach( $arr2 as $a){
$t2[$a['clubid']] = $a;
}
foreach ($t2 as $k=>$t) {
if (isset($t1[$k])){
//$tmp = $t;
$tmp = $t;
$tmp['form'] = $t['form'] . ',' . $t2[$k]['form'];
$tmp['P'] = $t2[$k]['P'] + $t['P'];
$tmp['W'] = $t2[$k]['W'] + $t['W'];
$tmp['D'] = $t2[$k]['D'] + $t['D'];
$tmp['L'] = $t2[$k]['L'] + $t['L'];
$tmp['F'] = $t2[$k]['F'] + $t['F'];
$tmp['A'] = $t2[$k]['A'] + $t['A'];
$tmp['GD'] = $t2[$k]['GD'] + $t['GD'];
$tmp['Pts'] = $t2[$k]['Pts'] + $t['Pts'];
$new[] = $tmp;
} else {
$new[] = $t;
}
}
print_r($new);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加