Php 正确格式化foreach和if语句

Php 正确格式化foreach和if语句,php,json,for-loop,if-statement,foreach,Php,Json,For Loop,If Statement,Foreach,我试图找出我在这里做错了什么,或者这一切是否都被格式化得不正确。我在第3行遇到一个错误 foreach($pge['feats'] as $val) { } if ($val['name'] == 'wins' && $val['value'] == '1') foreach ($val['value'] == '1' as $count) { echo count($count); } 这是我尝试的另一种方法 foreach($pge['feats']

我试图找出我在这里做错了什么,或者这一切是否都被格式化得不正确。我在第3行遇到一个错误

foreach($pge['feats'] as $val) {
} if ($val['name'] == 'wins' && $val['value'] == '1')
    foreach ($val['value'] == '1' as $count) {
        echo count($count);
}
这是我尝试的另一种方法

foreach($pge['feats'] as $val)
 if ($val['name'] == 'wins' && $val['value'] == '1')
    foreach ($val['value'] == '1' as $count) {
        echo count($count);
}
下面是我正在使用的一些json。我有几个看起来像这样的文件,其中wins/value对象的值不同。我的声明将逐一检查wins值是否为1,然后将所有1个值相加

我的$pge json的部分内容

{
  "playerCount": "2",
  "remote": "0",
  "feats": [
    {
      "name": "score",
      "value": "32"
    },
    {
      "name": "wins",
      "value": "0"
    }
  ]
}

谢谢大家!

您得到的错误警告:为foreach-line 3Don提供的参数无效您没有找到您的输入错误吗??foreach$pge['feats']as$val{}您的花括号结束错误我也移动了花括号,但仍然出错。这是我的另一种方式foreach$pge['feats']为$val{if$val['name']=='wins'&&$val['value']='1'foreach$val['value']='1'为$count{echo count$count;}}`这几乎起作用,但它不是计算等于1的值,而是以这种格式显示所有1和0的赢和输。。1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0这显示了4场胜利,这是正确的。我怎样才能把这4个1算作数字4呢?感谢you@KJThaDon请编辑您的问题,以包含更多样本数据和所需输出。我试图扩展和猜测您的示例数据,有了这些,它对我很有用。@KJThaDon,是代码编写服务吗?您可能需要做更多的调整:@KJThaDon,不,不远,您可能需要提高一些效率,例如,如果您正在提取这么多数据,则重用您的连接。在循环和条件语句中使用缩进,这在阅读代码时非常有帮助,而且您不太可能产生逻辑错误。@KJThaDon,我倾向于在执行时手动设置格式,如果可能的话,尽量不要嵌套多个级别。遗憾的是,Php没有内置的格式化程序。每个人都有自己的情况。有些编辑器可以使用库、在线工具和扩展。编辑器在读写时可能具有PHP语言支持和语法帮助。
<?php

function game_won(array $game) {
  $win = false;
  foreach($game['feats'] as $val) {
    if ($val['name'] == 'wins' && $val['value'] == '1') {
      $win = true;
    }
  }
  return $win;
}

function sum_game_wins(array $games) {
  $sum = 0;
  foreach($games as $game) {
    if(game_won($game)) {
      $sum++;
    }
  }
  return $sum; 
}

$game_1 =<<<JSON
{
  "playerCount": "2",
  "remote": "0",
  "feats": [
    {
      "name": "score",
      "value": "32"
    },
    {
      "name": "wins",
      "value": "1"
    }
  ]
}
JSON;

$game_2 =<<<JSON
{
  "playerCount": "2",
  "remote": "0",
  "feats": [
    {
      "name": "score",
      "value": "32"
    },
    {
      "name": "wins",
      "value": "0"
    }
  ]
}
JSON;

$game_1 = json_decode($game_1, TRUE);
$game_2 = json_decode($game_2, TRUE);

var_dump(sum_game_wins(array($game_1, $game_2)));
int(1)