Я пытаюсь выяснить, что я делаю здесь неправильно, или, если это неправильно отформатировано, все вместе. Я получаю сообщение об ошибке в строке 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. Мое утверждение будет проходить через каждый из них и проверять, чтобы значение выигрышей было «1», а затем складывать итоговые значения «1» вместе.
Частичное содержимое моего $ pge json
{
"playerCount": "2",
"remote": "0",
"feats": [
{
"name": "score",
"value": "32"},
{
"name": "wins",
"value": "0"}
]
}
Спасибо!
<?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)
Других решений пока нет …