私は配列の2つの配列を持っています。簡単にするために、2 つの配列のデモを次に示します。 $rows 配列:
Array ( [0] => Array ( [Badge] => Adrian [Denied] => 2 [Correct] => 9 )
[1] => Array ( [Badge] => Adriann [Denied] => 3 [Correct] => 6 )
[2] => Array ( [Badge] => newAd [Denied] => 0 [Correct] => 4 ) )
および $overrides_array:
Array ( [0] => Array ( [Badge] => Adrian [Override] => 2 )
[1] => Array ( [Badge] => newAd [Override] => 1 )
[2] => Array ( [Badge] => AntonRapid [Override] => 1 ) )
ここで、これら 2 つの配列を 1 つにマージして、最終的に次のようにしたいと考えています。
Array ( [0] => Array ( [Badge] => Adrian [Denied] => 2 [Correct] => 9 [Override] => 2 )
[1] => Array ( [Badge] => Adriann [Denied] => 3 [Correct] => 6 [Override] => 0 )
[2] => Array ( [Badge] => newAd [Denied] => 0 [Correct] => 4 [Override] => 1 )
[2] => Array ( [Badge] => AntonRapid [Denied] => 0 [Correct] => 0 [Override] => 1 )
)
これまでのところ、次の醜いコードを思いつきましたが、一部のバッジでは機能しません。
$result_array = array();
$counter = 0;
foreach ($rows as $row){
//$counter = 0;
if(count($override_array) > 0){
foreach($override_array as $override){
if($row['Badge'] == $override['Badge'] ){
$row = $this->array_push_assoc($row, 'Override', $override['Override']);
unset($override_array[$counter]);
$counter++;
}
}
}
else $row=$this->array_push_assoc($row, 'Override', '0');
$result_array[]=$row;
}
$roww = array();
//print_r($override_array);
if(count($override_array) > 0){
foreach ($override_array as $override){
$roww = $this->array_push_assoc($roww, 'Override', $override['Override']);
$roww = $this->array_push_assoc($roww, 'badge', $override['Badge']);
$roww = $this->array_push_assoc($roww, 'Correct', '0');
$roww = $this->array_push_assoc($roww, 'Denied', '0');
$result_array[]=$roww;
}
}