Home > Backend Development > PHP Tutorial > PHP array traversal foreach syntax structure and examples

PHP array traversal foreach syntax structure and examples

高洛峰
Release: 2023-03-04 15:02:01
Original
1700 people have browsed it

foreach()

PHP foreach() syntax structure is used to traverse operations or output arrays. foreach() can only be used to traverse arrays or objects. When trying to use it for other data types or an unknown An error occurs when initializing variables.

Syntax:

foreach (array as $value)
  statement
// 或者:
foreach (array as $key => $value)
 
statement
Copy after login

In the above syntax, each loop assigns the value of the current unit to $value and the pointer inside the array moves forward Move one step. In the second syntax format, the key name of the current unit is also assigned to the variable $key in each loop.

Example:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $age) {
  echo $age,&#39;<br />&#39;;
}
?>
Copy after login

Run this example output:

18
20
25
Copy after login

Use array key value

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $key=>$age) {
  echo $key,&#39;: &#39;,$age,&#39;<br />&#39;;
}
?>
Copy after login

Run the example output:

wang: 18
li: 20
zhang: 25
Copy after login

When foreach starts When executed, the pointer inside the array will automatically point to the first element, which means there is no need to call reset() before the foreach loop.

foreach operates on a copy of the specified array, not the array itself. Modifications to the returned array elements will not affect the original array (see example below), but when the foreach loop runs to the end, the internal pointer of the original array will point to the end of the array.

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $age) {
  $age = $age+10;
  echo $age,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>
Copy after login

Run the example output:

28
30
35
Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
Copy after login

To modify the original array elements in foreach , can be achieved by quoting, change the above example to:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as &$age) {
  $age = $age+10;
  echo $age,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>
Copy after login

Run the example output:

18
20
25
 
Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
Copy after login

Traversing multi-dimensional arrays

The foreach syntax structure can only be used to traverse one-dimensional arrays. To traverse multi-dimensional arrays, generally use foreach nested recursion or divide the original array into one-dimensional arrays and then perform foreach traversal.

Example of mixing one- and two-dimensional arrays:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25));
foreach ($arr_age as $age) {
  if(is_array($age)){
    foreach ( $age as $detail) {
    echo $detail,&#39;<br />&#39;;
    }
  } else {
    echo $age,&#39;<br />&#39;;
  }
}
?>
Copy after login

The traversal processing of multi-dimensional arrays requires the most appropriate processing method based on the actual data structure.

PHP arrays are implemented through HashTable tables, so foreach traverses the array according to the order in which elements are added. If you want to iterate by index size, you should use a for() loop.

for() loop to traverse the array

If you are operating an array of continuous key values, you can also use for() loop to traverse the array:

<?php
$arr_age = array(18, 20, 25);
$num = count($arr_age);
for($i = 0; $i < $num; $i++){
  echo $arr_age[$i]."<br />";
}
?>
Copy after login

You can also use list() and each() combined to traverse the array, but the test found that the efficiency is

not as good as foreach().

The above PHP array traversal foreach syntax structure and examples are all the content shared by the editor. I hope it can give you a reference, and I also hope you will pay more attention to the PHP Chinese website.

For more articles related to PHP array traversal foreach syntax structure and examples, please pay attention to the PHP Chinese website!


Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template