function calcJSON($data) { $total = 0; foreach ($data as $part) { if (is_array($part) || is_object($part)) { $total += calcJSON($part); } if (is_numeric($part)) { $total += $part; } if (is_object($data) && is_string($part) && $part == "red") { return false; } } return $total; }
} if (is_array($item)) { $total += sum($item); } elseif (is_numeric($item)) { $total += $item; } } return $total; } function is_red($ob) { if (!is_array($ob)) { return false; } if (!is_assoc($ob)) { return false; } foreach ($ob as $val) { if ($val === 'red') { return true; } } return false; } function is_assoc($arr) { return $arr !== array_values($arr); } $json = file_get_contents("day12.json"); calcJSON($json);