Php 正确格式化foreach和if语句
我试图找出我在这里做错了什么,或者这一切是否都被格式化得不正确。我在第3行遇到一个错误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']
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)