Home >Backend Development >PHP Problem >How to use php foreach?

How to use php foreach?

烟雨青岚
烟雨青岚Original
2020-06-29 14:31:172845browse

The foreach statement in PHP repeats an embedded statement group for each element in an array or object collection. It is used to iterate through the collection to obtain the required information. It should not be used to change the contents of the collection to avoid unpredictable behavior. side effect. The syntax is "foreach (array as variable) loop body".

How to use php foreach?

The foreach statement repeats a group of embedded statements for each element in an array or collection of objects. The foreach statement is used to iterate through a collection to obtain the required information, but should not be used to change the contents of the collection to avoid unpredictable side effects.

Applicable programming language categories: Java, C#, PHP, D language (Phobos library).

The foreach statement is a new loop statement in c#. It is particularly convenient for processing data types such as arrays and collections.

The general syntax format of the foreach statement is as follows:

foreach(数据类型 标识符 in 表达式)
{
循环体2
}。

php 4 introduces the foreach structure, which is very similar to Perl and other languages. This is just a convenient way to iterate over an array. foreach can only be used with arrays, and an error will occur when trying to use it with other data types or an uninitialized variable. There are two syntaxes, the second being a less important but useful extension of the first.

foreach (array_expression as $value) statement

The first format iterates over the given array_expression array. Each time through the loop, the value of the current cell is assigned to $value and the pointer inside the array is moved forward one step (so the next cell will be obtained in the next loop).

foreach (array_expression as $key => $value) statement

The second format does the same thing, except that the key name of the current unit will also be in The variable $key is assigned to each loop.

Since PHP 5, it is also possible to traverse objects. Note: When foreach starts executing, the pointer inside the array will automatically point to the first element. This means there is no need to call reset() before the foreach loop.

Note: Unless the array is referenced, foreach operates on a copy of the specified array, not the array itself. Therefore, the array pointer will not be changed by the each() structure, and modifications to the returned array units will not affect the original array. However, the internal pointer of the original array does move forward during the processing of the array. Assuming that the foreach loop runs to the end, the internal pointer of the original array will point to the end of the array.

Since PHP 5, you can easily modify the cells of an array by adding & before $value. This method assigns by reference rather than copying a value.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

This method is only available when the array being traversed can be referenced (for example, it is a variable).

Note: foreach does not support the ability to use "@" to suppress error messages.

Users may have noticed that the following codes have the same functions:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
 echo "Value: $value<br>/n";
}foreach ($arr as $value) { 
echo "Value: $value<br />/n";
}
?>

The following codes also have the same functions:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) { 
echo "Key: $key;
 Value: $value<br />/n";
}foreach ($arr as $key => $value) { 
echo "Key: $key; 
Value: $value<br />/n";
}
?>

Recommended tutorial: "php tutorial

The above is the detailed content of How to use php foreach?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn