In this section we are going to learn about different loops in PHP and use a loop in displaying the information from a JSON file. I mean we are going to create a project in which we are going to get the information stored in “movies.json” file created in section 4 and then loop through the JSON file using PHP. So let’s learn about loops and how to extract data from a json file using PHP in this PHP Loops tutorial.
- To start our project let’s create a new folder named Loops in the htdocs folder in the xampp folder in C drive.
- Open a new notepad++ file and save it as index.php in the newly created folder named Loops in htdocs folder.
- Open this project in browser by just writing localhost/Loops in the address bar. You will see the following output:
- Let’s start with PHP loops.
- FOR LOOP
- Let us try one example. Write the following code in index.php document:
- Here, we are dealing with PHP, so have included the code within
<?php?>
tag.
- For loop has a variable $i initialized to 0 having condition $i<=10 and incrementing $i with every iteration.
- The statement echo displays a string “Number ” with the value of $i variable concatenated with it using a period(.) in every iteration till the condition is satisfied.
- Brake tag is used for a line brake.
- The process of displaying will continue till the condition is true. Once the condition becomes false, the loop will terminate.
- Now just reload the page and see the output as shown below:
- WHILE LOOP
- Syntax for while loop is show below:
- Let us try the same example shown above using while loop. Write the following code in index.php document:
- Here, we have initialized $i variable to zero(0) initially.
- Next we have given the condition $i<=10 in the while statement.
- The statement echo inside the while block will display the string “Number ” with the value of $i as it changes in every iteration.
- The statement $i++; is used to increment the value of $i after displaying it. But remember if you forget to increment/decrement its value, the loop will become an infinite loop. This will happen because the value of $i will remain constant and it will always satisfy the condition and will always return true.
- Now reload the browser and see the output, it is shown below:
- FOREACH LOOP
- Syntax for a foreach loop is shown below:
- Let us try it with an example. Write the following code in index.php document:
- Here, we have declared an array named $people. We want to just display the names in the array using foreach loop.
- The foreach loop contains array name i.e. $people, as keyword and a variable $person for traversing the array $people.
- The variable $person fetches one value from the array and then auto-increments itself to point to the next value in the array with every iteration.
- We have displayed the array contents using echo statement.
- Now reload the browser and see the output. The output is shown below:
- Now we have learned the loops, so let us turn to the next part of our project i.e. looping through a JSON file using PHP.
- For this copy the movies.json file created in some of the previous chapters of section 4 “XML,JSON and AJAX” and paste in our Loops folder created for this project in htdocs file.
- Since we want to display data in a systematic way we need to use html in this project.
- So write the following HTML code in index.php document. You can comment all the loop examples taken above.
- Comments in PHP are :
- // — single line comment
- /* —-*/ — multiline comment
- HTML code is as follows:
- Your page will look like this:
- Now to show the information on the webpage we need to grab the contents of the movies.json file. So write the following code above the statement
<!DOCTYPE html>
:
- Here, we have not given the full path of movies.json file because our index.php file and movies.json file are in the same folder.
- Due to the above code we will get all the data from the movies.json file and it will be stored in the variable $jsondata.
- If we are working with a website and we want data from a URL, we can use the URL in place of the file name.
- We got the data from the JSON file and stored it in the variable $jsondata. Next thing we want to do is decode the JSON data so that we could parse it with php. So write the following statement below the statement written in step 7 inside the
<?php?>
tag:
- This statement will decode the JSON data and store it in the variable $json.
- Now we have the decoded data with us. So to represent it using php and html write the following code in the
<body>---</body>
tags.
- Here, we are representing the information in an un-ordered list.
- The whole information is contained in a div tag with id “container”. It will be easy to apply styling to the information.
- We have used PHP to display the decoded information stored in the variable $json.
- foreach loop is used to display the contents of the array.
- The title of the movie is displayed in an h4 heading tag and the details of the movie viz. year, genre and director are displayed in the li tags.
- Output after writing the above code is shown below:
- Now as we have displayed all the information, we will apply some styling to it. Write the following code in the head section of the page:
- Here, we have styled the h1, h4, li tags and container id.
- Due to the text-align:center; style applied to the h1 tag, the heading My Favourite Movies is aligned to centre.
- Next each movie title is given the margin of zero pixels, padding of 5 pixels from all sides and a gray background color; as it is in h4 tag.
- Next the bullets of each list item are removed using the statement list-style:none and a padding of 5 pixels is given from left side.
- Next the id container is styled with width of 600 pixels. This will club all the information within the width of 600 pixels.
- A margin with value autois given to the container div so that the contents of the container div are always shown at the centre.
- The styling overflow:hidden; is used to hide any overflown data.
- Output of the styled webpage is shown below:
Loops in PHP have the same syntax as we used in javascript.
-
Syntax for a for loop is shown below:
for(initialization;condition;increment/decrement)
{
Statement(s);
}
<?php
for($i=0;$i<=10;$i++)
{
echo 'Number '.$i.'<br/>';
}
?>
Variable initialization;
while(condition)
{
Statement(s);
Increment/decrement;
}
<?php
$i=0;
while($i<=10)
{
echo 'Number '.$i.'<br/>';
$i++;
}
?>
foreach(Variable_pointing_to_array as variable_traversing_through_array)
{
Statement(s);
}
<?php
$people=array('Robbin','Michael','Jeorge','Kevin');
foreach($people as $person)
{
echo $person.'<br/>';
}
?>
<!DOCTYPE html> <html> <head> <title>My Movies</title> </head> <body> </body> </html>
<?php
$jsondata=file_get_contents("movies.json");
?>
$json=json_decode($jsondata,true);
<body>
<div id="container">
<h1>My Favourite Movies</h1>
<ul>
<?php
foreach($json['movies'] as $key=>$value)
{
echo '<h4>'.$value['title'].'</h4>';
echo '<li>Year: '.$value['year'].'</li>';
echo '<li>Genre: '.$value['genre'].'</li>';
echo '<li>Director: '.$value['director'].'</li>';
}
?>
</ul>
</div>
</body>
<style>
h1
{
text-align:center;
}
h4
{
margin:0;
padding:5px;
background:#f4f4f4;
}
li
{
list-style:none;
padding-left:5px;
}
#container
{
width:600px;
margin:auto;
overflow:hidden;
}
</style>
Thus we finished with our PHP loops and a task of grabbing JSON file data and displaying it using PHP in this PHP Loops tutorial.






