Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Enhancing a Simple PHP Application Paginating a List: Controller Adjusting Invalid Numbers

Phil Ward
Phil Ward
4,204 Points

Enhancing a PHP application - not sure what should be changed in this foreach loop

Question: The $numbers array in the code below contains one thousand numbers. I need to count how many of these numbers fit into each of the following categories: (a) how many of them are between 1 and 1000 inclusive, (b) how many of them are less than 1, and (c) how many of them are greater than 1000. I have created a foreach loop to look at each number one after the other, but right now it’s treating every number like it belongs in all three categories. Modify the code below so that the counts are correct.

I'm just completely stumped as to what i need to change to ensure the loop only counts the numbers as described. Do i need an IF statement with the math calculation for each variable being looped through?

The preview isnt much help and the other include files are not in the task so i cant even get the task in a browser and try and figure it out

controller.php
<?php

require_once('model.php');
$numbers = get_numbers();



    $count_less_than_one           = 0;
    $count_between_one_and_thousand = 0;
    $count_greater_than_thousand    = 0;

    foreach ($numbers as $number) {


        $count_less_than_one += 1;


        $count_between_one_and_thousand += 1;


        $count_greater_than_thousand += 1;


    }



include('view.php');

?>

2 Answers

Paul Wroe
Paul Wroe
13,762 Points

Hi, Try wrapping each counter inside an if statement so that the count is incremented only if it meets the criteria. You can use three different if statements, one for each condition. Each iteration of the foreach loop will make three checks. I hope that helps.

Phil Ward
Phil Ward
4,204 Points

Thanks for that guidance, that really helped i actually managed to do it after a bit of messing around :) little tricky when the include files are not shown in the challenge