Php while loop and array

PHP Loop: For, ForEach, While, Do While [Example]

A Loop is an Iterative Control Structure that involves executing the same number of code a number of times until a certain condition is met.

PHP For Loop

The above code outputs “21 is greater than 7” For loops For… loops execute the block of code a specifiednumber of times. There are basically two types of for loops;

Let’s now look at them separately. For loop It has the following basic syntax

  • “for…” is the loop block
  • initialize” usually an integer; it is used to set the counter’s initial value.
  • “condition” the condition that is evaluated for each php execution. If it evaluates to true, then execution of the for… loop continues. If it evaluates to false, the execution of the for… loop is terminated.
  • “increment” is used to increment the initial value of counter integer.

How it works

The flowchart shown below illustrates how for loop in php works

PHP Loop and Control Structures

How to code

The code below uses the “for… loop” to print values of multiplying 10 by 0 through to 10

The product of 10 x 0 is 0 The product of 10 x 1 is 10 The product of 10 x 2 is 20 The product of 10 x 3 is 30 The product of 10 x 4 is 40 The product of 10 x 5 is 50 The product of 10 x 6 is 60 The product of 10 x 7 is 70 The product of 10 x 8 is 80 The product of 10 x 9 is 90

PHP For Each loop

The php foreach loop is used to iterate through array values. It has the following basic syntax

  • “foreach(…)” is the foreach php loop block code
  • “$array_data” is the array variable to be looped through
  • “$array_value “ is the temporary variable that holds the current array item values.
  • “block of code…” is the piece of code that operates on the array values

How it works The flowchart shown below illustrates how the for… each… loop works

PHP Loop and Control Structures

Practical examples

The code below uses for… each loop to read and print the elements of an array.

Lion Wolf Dog Leopard Tiger

Let’s look at another example that loops through an associative array.

An associative array uses alphanumeric words for access keys.

 "Female", "John" => "Male", "Mirriam" => "Female"); foreach($persons as $key => $value)< echo "$key is $value"."
"; > ?>

The names have been used as array keys and gender as the values.

Mary is Female John is Male Mirriam is Female

While Loop

PHP While loop

They are used to execute a block of code a repeatedly until the set condition gets satisfied

When to use while loops

  • While loops are used to execute a block of code until a certain condition becomes true.
  • You can use a while loop to read records returned from a database query.
Читайте также:  Sign Up

Types of while loops

  • Do… while – executes the block of code at least once before evaluating the condition
  • While… – checks the condition first. If it evaluates to true, the block of code is executed as long as the condition is true. If it evaluates to false, the execution of the while loop is terminated.

It has the following syntax

  • “while(…)” is the while loop block code
  • “condition” is the condition to be evaluated by the while loop
  • “block of code…” is the code to be executed if the condition gets satisfied

How it works

The flow chart shown below illustrates how the while… loop works

PHP Loop and Control Structures

Practical example

The code below uses the while… loop to print numbers 1 to 5.

PHP Do While

The difference between While… loop and Do… while loop is do… while is executed at-least once before the condition is evaluated.

Let’s now look at the basic syntax of a do… while loop

  • “do while(…)” is the do… while loop block code
  • “condition” is the condition to be evaluated by the while loop
  • “block of code…” is the code that is executed at least once by the do… while loop

How it works

The flow chart shown below illustrates how the while… loop works

PHP Loop and Control Structures

Practical example

We are now going to modify the while… loop example and implement it using the do… while loop and set the counter initial value to 9.

The code below implements the above modified example

The above code outputs:

Note the above example outputs 9 only.

This is because the do… while loop is executed at least once even if the set condition evaluates to false.

Summary

  • The for… loop is used to execute a block of a specified number of times
  • The foreach… loop is used to loop through arrays
  • While… loop is used to execute a block of code as long as the set condition is made to be false
  • The do… while loop is used to execute the block of code at least once then the rest of the execution is dependent on the evaluation of the set condition

Источник

6 ways to loop through an array in php

Today, we will learn how to loop through an array in PHP using while ****loop, for loop, & various PHP Array functions.

PHP is one of the easiest language and traversing through an array in php is very easy. Infact, most popular way to access items in array in php is using loops : while, for & do..while

1. While loop

The while loop is very common loop among all languages and PHP is not different. In fact, while loop is one of the most popular method to iterate over PHP array.

while(expression) // Code to be executed >

It means that, while the given expression (or condition) is true, execute the code inside the curly brackets, and check the expression again. Keep doing it, until expression becomes false.

How to Iterate over PHP array using while loop

The PHP arrays have elements which can be accessed via its index position, right?

So, we can use the while loop to change the index position incrementally or decrementally therefore accessing every element (or selective elements as per the condition).

Here, we will create an index position variable and start with 0th position which is first in an array.

The condition will be to continue fetching element from an array til our index values is less than the count of array (or length of the given array).

Since, while loop will not increment our index variable automatically, we need to increment it inside the loop. Therefore, with each iteration, variable will move to next index position.

 $users = ['john', 'dave', 'tim']; $i = 0; while($i  count($users))  echo $users[$i]."\n"; $i++; > ?>

2. do while Loop

Well, personally it’s my least favorite loop in every programming language, so I’d probably say less.

The do while is another type of loop in php (and mostly all programming languages . except some functional languages .. Yes, I am looking at you Smalltalk )

It is mostly similar to while loop, except the ordering is reverse.

  • In while loop, condition or expression is checked first & if true, then the code inside the loop gets executed
  • In do while loop, code inside the loop gets executed first & then the condition is checked. If condition is true, then it will execute the code again and so on.
do  // Code to be executed > while(expression);

It means that, while the given expression (or condition) is true, execute the code inside the curly brackets, and check the expression again. Keep doing it, until expression becomes false.

Note: Don’t miss the semicolon at the end. I always forget that.

Without further ado, let’s recrete previous example using do while loop

How to loop through php array using do while loop

We will iterate over an array of users using do while loop.

 $users = ['john', 'dave', 'tim']; $i = 0; do  echo $users[$i]."\n"; $i++; > while($i  count($users)); ?>

3. For Loop

Let’s talk about the MOST popular loop. The for loop.

The for loop is my most favorite general loop (next one I use often for this particular usecase) for any general iterative usecase. It does the exactly same as while loop but it has different, more compact syntax.

for (expr1; expr2; expr3)  //Code to be executed > 

It looks very complex at first, but when you get bit experience, believe me, you will prefer this most of the time.

It has placeholder for three expressions (each are optional, so you can still use this loop just like while)

  • Expr1 — It gets executed once at the beginning of the loop, so normally it is used to initialize any counters to be used.
  • Expr2 — This is the condition part. At the beginning of each iteration, this expression gets evaluated and if true then only it will continue.
  • Expr3 — It gets execute at the end of the iteration. Normally used to increment/decrement our counters.

Let’s recreate our example using for loop.

How to loop through array using for loop in PHP

As shown below, it is exactly same as while loop, except it’s condensed and better syntax. Also, for one line statements, you can omit curly brackets 😉

 $users = ['john', 'dave', 'tim']; for($i = 0;$i  count($users);$i++) echo $users[$i]."\n"; ?> 

4. Foreach Loop

Talking about condensed syntax, let’s talk about another great and special loop — Foreach loop.

This loop is only helpful when you want to iterate over each item. If for example — you want to access only even position items, then sadly this loop is not for you, you need to use above loops.

But, for the particular use of accessing each item (see the pun?), foreach is my favorite and infact would be everyone’s favorite. It is very simply and easy to use.

//without key foreach (iterable_expression as $value) statement //with key foreach (iterable_expression as $key => $value) statement

Let’s checkout the example:

How to loop over array using foreach loop in PHP

Let’s recreate our example. We won’t need the keys (position) therefore we will use foreach without keys.

 $users = ['john', 'dave', 'tim']; foreach($users as $user) echo $user."\n"; ?>

5. array_walk

The array_walk is an array function provided by PHP which applies the given function to each element in the array, hence the name «array_walk».

array_walk(array|object &$array, callable $callback, mixed $arg = null): bool
  • array — It is the input array to iterate over.
  • callback — It is a function passed to this function which will act on each item one by one. This function takes two parameters — 1. Item value 2. Index position of the item
  • args — It is the optional arguments which if supplied, will be passed as third parameter to callback function.

It returns true when executed successfully.

Let’s recreate our example:

 $users = ['john', 'dave', 'tim']; function print_item($item, $key)  echo $item."\n"; > array_walk($users, 'print_item'); ?>

6. Array Iterator

This is quite advanced and complex way to iterate over an array. Honestly, I don’t see the reason why you would need to use this over other methods, but for the purpose of fun & learning, let’s explore this.

Here, we will create ArrayIterator object using ArrayObject function and use it to iterate over an array. It is based on pointer mechanism just like C++.

 $users = ['john', 'dave', 'tim']; $array_object = new ArrayObject($users); $array_iterator = $array_object->getIterator(); while( $array_iterator->valid() )  echo $array_iterator->current() . "\n"; $array_iterator->next(); > ?>

Conclusion

We saw 6 ways to loop over an array in PHP so far. Personally, I like to use foreach because it is very simple but you can use any of the above method. Hope, this helped.

Источник

Использование циклов в PHP

PHP имеет четыре вида циклов и операторы управления ими, рассмотрим поподробнее.

Foreach – перебор массива

Предназначен для перебора элементов массива.

Foreach – перебор массива

$array = array( 1 => 'Значение 1', 2 => 'Значение 2', 3 => 'Значение 3', 4 => 'Значение 4', ); // Вывод ключей foreach ($array as $key => $val) < echo $key . '
'; > // Вывод значений foreach ($array as $key => $val) < echo $val . '
'; >

Результат:

1 2 3 4 Значение 1 Значение 2 Значение 3 Значение 4

Альтернативный синтаксис foreach

For – цикл с счетчиком

Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.

For – цикл с счетчиком

// Счетчик от 0 до 5 for ($n = 0; $n // Счетчик от 5 до 0 for ($n = 5; $n >= 0; $n--)

Результат:

Альтернативный синтаксис

$array = array( 'Значение 1', 'Значение 2', 'Значение 3', 'Значение 4', ); for ($n = 0; $n < count($array); $n++) < echo $array[$n] . '
'; >

Результат:

Значение 1 Значение 2 Значение 3 Значение 4

Альтернативный синтаксис for

While – цикл с предусловием

Т.е. если перед началом итерации условие выполняется, то цикл продолжает свою работу.

While – цикл с предусловием

Результат:

Альтернативный синтаксис while

Do-while – цикл с постусловием

В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-while не имеет альтернативного синтаксиса.

Do-while – цикл с постусловием

Результат:

Управление циклами

Break

Вызов break или break 1 в цикле останавливает его.

Для вложенных циклов используется break 2 и т.д.

Continue

Используется для пропуска итерации.

Результат:

Для вложенных циклов по аналогии с break 2 , break 3 – continue 2 , continue 3 .

Источник

Оцените статью