我想将sandra_array的值与john_array进行比较,然后再与sem_array进行比较。
我可以将sandra_array与john_array进行比较:
<?php
$sandra_array = array("soccer" => "10", "basketball" => "20", "atletics" => "40");
$john_array = array("soccer" => "15", "basketball" => "15", "atletics" => "45");
$sem_array = array("soccer" => "5", "basketball" => "10", "atletics" => "50");
$common_sports = array_keys(array_intersect_key($sandra_array, $john_array));
$points_sandra_array = $points_john_array = array_fill_keys($common_sports, 0);
foreach ($common_sports as $common_sport) {
if ($sandra_array[$common_sport] > $john_array[$common_sport]) {
$points_sandra_array[$common_sport]++;
} else if ($sandra_array[$common_sport] < $john_array[$common_sport]) {
$points_john_array[$common_sport]++;
}
}
foreach ($common_sports as $common_sport) {
}
echo "Sandra (", array_sum($points_sandra_array).") vs John (", array_sum($points_john_array).")";
?>
结果
Sandra (1) vs John (2)
我也想得到桑德拉对塞姆的结果。喜欢这个:
Sandra (1) vs John (2)
Sandra (2) vs Sem(1)
我正在考虑制作以下多维数组:
$array_other_players = array($john_array,$sem_array);
然后,我将首先将桑德拉的观点与约翰的观点进行比较,然后与塞姆的观点进行比较。但我不知道该怎么做。
你能帮我这个吗?
解决方案是:
-
首先声明一个包含对手玩家数组的数组,如下所示:
$players_array = array('John' => $john_array, 'Sem' => $sem_array);
-
然后循环遍历每个对手玩家,计算最终得分。
所以你的代码应该是这样的:
$sandra_array = array("soccer" => "10", "basketball" => "20", "atletics" => "40");
$john_array = array("soccer" => "15", "basketball" => "15", "atletics" => "45");
$sem_array = array("soccer" => "5", "basketball" => "10", "atletics" => "50");
// Declare an array containing opponents players' array
$players_array = array('John' => $john_array, 'Sem' => $sem_array);
// Loop through each opponent player to calculate the final score
foreach($players_array as $opponent_player => $opponent_player_array){
$common_sports = array_keys(array_intersect_key($sandra_array, $opponent_player_array));
$points_sandra_array = $points_opponent_array = array_fill_keys($common_sports, 0);
foreach ($common_sports as $common_sport) {
if ($sandra_array[$common_sport] > $opponent_player_array[$common_sport]) {
$points_sandra_array[$common_sport]++;
} else if ($sandra_array[$common_sport] < $opponent_player_array[$common_sport]) {
$points_opponent_array[$common_sport]++;
}
}
echo "Sandra (". array_sum($points_sandra_array).") vs {$opponent_player} (". array_sum($points_opponent_array) .")<br />";
}
输出:
Sandra (1) vs John (2)
Sandra (2) vs Sem (1)