When using an array, it is often necessary to traverse the array. It is often necessary to iterate through an array and get the individual keys or values (or get both keys and values), so not surprisingly, PHP provides some functions for this purpose. Many functions perform two tasks, not only obtain the key or value at the current pointer position, but also move the pointer to the next appropriate position.
Get the current array key key()
The key() function returns the key at the current pointer position in input_array. Its form is as follows:
mixed key(array array)
The following example outputs the keys of the $fruits array by iterating through the array and moving the pointer:
3 4 5 6 7 |
$fruits = array("apple"=>"red", "banana"=>"yellow");
", $key); next($fruits); } // apple // banana
|
1 2 3 |
$fruits = array("apple", "banana", "orange", "pear"); print_r ( each($fruits) ); // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 ) |
The current() function returns the array value at the current pointer position in the array. Its form is as follows:
mixed current(array array)
1 2 3 4 5 6 7 8 9 10 |
$fruits = array("apple", "banana", "orange", "pear"); reset($fruits); while (list($key, $val) = each($fruits)) { echo "$key => $val } // 0 => apple // 1 => banana // 2 => orange // 3 => pear |
1 2 3 4 5 6 7 |
$fruits = array("apple"=>"red", "banana"=>"yellow");
while ($fruit = current($fruits)) {
printf("%s ", $fruit); next($fruits); } // red // yellow |
1 2 3 | $fruits = array("apple", "banana", "orange", "pear"); print_r ( each($fruits) ); // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 ) |
1 2 3 4 5 6 7 8 9 10 |
$fruits = array("apple", "banana", "orange", "pear");
reset($fruits);
while (list($key, $val) = each($fruits))
{
echo "$key => $val "; } // 0 => apple // 1 => banana // 2 => orange // 3 => pear |
Because assigning one array to another array will reset the original array pointer, in the above example if we assign $fruits to another variable inside the loop, it will cause an infinite loop.
This completes array traversal.