PHP在数组中循环,if key1向变量添加运算符

PHP在数组中循环,if key1向变量添加运算符,php,arrays,Php,Arrays,我已经很多年没有编码了,我决定自己制作高尔夫统计程序 我在遍历数组并获取所需数据时遇到问题。我猜这很简单,但我已经很生疏了,试着让自己明白这一点。谢谢你的帮助 对于下面的代码,我希望$dismade为8,它现在返回4 更新 这很有效。谢谢现在我有另一个问题,我需要做18次。我试着像下面这样做,但运气不好。我要做的是检查foreach数组1-18。它们都是一样的,里面有9把钥匙。我的想法正确吗?下面的只得到第一个位置$例如,第[fp1]行始终是键2,但可以有很多值,我想在其中遍历并添加到$gi

我已经很多年没有编码了,我决定自己制作高尔夫统计程序

我在遍历数组并获取所需数据时遇到问题。我猜这很简单,但我已经很生疏了,试着让自己明白这一点。谢谢你的帮助

对于下面的代码,我希望$dismade为8,它现在返回4


更新

这很有效。谢谢现在我有另一个问题,我需要做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);

因为数组中有一个重复的键“4”,因为每个键在数组中都是唯一的


数组中的第三行“4”=>“4”将与数组中的第一行重叠。

您的
$score
键有问题。如您所见,您有一个重复的钥匙
“4”

尝试以下方法:


祝你今天愉快。

谢谢你的快速帮助。它工作得很好。你会采取不同的做法吗?这取决于上下文-我对高尔夫一窍不通。没关系,我猜因为我是新来的,所以我不能投票,但是谢谢你的回复和帮助!第二次输入时,您正在覆盖键“4”。你的意图是什么?忘了不想推翻它。顺便说一句,反对票从来都是站不住脚的。
$score = array([4,4], [3,4], [4,4]);
$dismade = 0;
foreach ($score as $value) {
  if($value[0] == 4) {
    $dismade += $value[1];
  }
}
echo $dismade;