我已经很多年没有编码了,我决定制作自己的高尔夫统计程序。
我在遍历数组并获取我想要的数据时遇到了问题。我猜这很简单,但我很生疏,试着把自己理解成这样。感谢您的帮助。
对于下面的代码,我希望$dismade为8,现在它返回4?
<?php
$score = array(
"4" => "4",
"3" => "4",
"4" => "4"
);
$dismade = 0;
foreach ($score as $stroke => $dis) {
if($stroke == 4) {
$dismade = $dis + $dismade;
}
}
echo $dismade;
?>
更新!!
效果很好。谢谢现在我有另一个问题,我需要做18次。我试着像下面这样做,但运气不好。我想做的是检查foreach数组1-18。它们都是一样的,里面有9把钥匙。我想得对吗?以下仅获得第一个位置$例如,行[fp1]将始终是键2,但可以有很多值,我想在其中遍历并添加到$gir,然后转到fp2,依此类推到18,并添加到$gir数组。我希望我的问题有道理。
$hole1 = array();
$hole2 = array();
$result = mysql_query($sql) or die ("Couldn't select table at!!");
while ($row = mysql_fetch_array($result)) {
$hole1[$row[rid]] = array($row[s1],$row[p1],$row[gir1],$row[ngir1],$row[fp1],$row[fw1],$row[ud1],$row[ss1],$row[pen1]);
$hole2[$row[rid]] = array($row[s2],$row[p2],$row[gir2],$row[ngir2],$row[fp2],$row[fw2],$row[ud2],$row[ss2],$row[pen2]);
}
mysql_free_result($result);
$gir = array();
foreach (array_combine($hole1,$hole2) as $value) {
if($value[2] == 1) {
array_push($gir,$value[4] );
}
}
print_r ($gir);
您的$score
密钥有问题。如您所见,您有一个重复的密钥"4"
。
尝试以下操作:
$score = array([4,4], [3,4], [4,4]);
$dismade = 0;
foreach ($score as $value) {
if($value[0] == 4) {
$dismade += $value[1];
}
}
echo $dismade;
祝你今天愉快。
因为数组中有一个重复的密钥"4",因为每个密钥在中都是唯一的
数组,因此第三行"4"=>"4"将与数组中的第一行重叠。