PHP循环遍历数组,如果key1将运算符添加到变量

时间:2016-03-29 01:36:54

标签: php arrays

我多年没有编码,并决定制作自己的高尔夫统计计划。

我遇到了通过数组并获取我想要的数据的问题。我猜这很简单,但我非常生疏,并试图自己读到这个。感谢任何帮助。

对于下面的代码我希望$ 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;

?>

UPDATE !!

效果很好。谢谢。现在我有另一个问题,我需要这样做18次。如果没有运气我试着像下面这样做。我想要做的是检查foreach数组1-18。内部有9个键,它们都是一样的。我在想这个吗?以下只获得第一名。 $ row [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);

2 个答案:

答案 0 :(得分:2)

您的$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;

度过愉快的一天。

答案 1 :(得分:1)

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

中都是唯一的

数组所以第三行“4”=&gt; “4”将与数组中的第一行重叠。