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
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,'<br />'; } ?>
Run this example output:
18 20 25
Use array key value
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
Run the example output:
wang: 18 li: 20 zhang: 25
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,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Run the example output:
28 30 35 Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
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,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Run the example output:
18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
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,'<br />'; } } else { echo $age,'<br />'; } } ?>
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 />"; } ?>
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!