current
current -- 返回數組中的當前單元
說明
mixed
current
( array &array )
每一個數組中都有一個內部的指針指向它「當前的」單元,初始指向插入到數組中的第一個單元。 php
current() 函數返回當前被內部指針指向的數組單元的值,並不移動指針。若是內部指針指向超出了單元列表的末端,current() 返回 FALSE。 數組
警告 |
若是數組包含有空的單元(0 或者 "",空字符串)則本函數在碰到這個單元時也返回FALSE。這使得用 current() 不可能判斷是否到了此數組列表的末端。要正確遍歷可能含有空單元的數組,用 each() 函數。 app |
例 1. current() 及相關函數的用法示例 函數
<?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport); // $mode = 'bike'; $mode = current($transport); // $mode = 'bike'; $mode = prev($transport); // $mode = 'foot'; $mode = end($transport); // $mode = 'plane'; $mode = current($transport); // $mode = 'plane'; ?> |
|
------------------------------------------------------------------------------------------------------- ui
end
end -- 將數組的內部指針指向最後一個單元
說明
mixed
end
( array &array )
end() 將 array 的內部指針移動到最後一個單元並返回其值。 this
例 1. 簡單的 end() 例子 spa
<?php $fruits = array('apple','banana','cranberry'); echo end($fruits); // cranberry ?> |
|
------------------------------------------------------------------------------------------------------- 指針
prev
prev -- 將數組的內部指針倒回一位
說明
mixed
prev
( array &array )
返回數組內部指針指向的前一個單元的值,或當沒有更多單元時返回 FALSE。 code
警告 |
若是數組包含空的單元,或者單元的值是 0 則本函數碰到這些單元也返回 FALSE。要正確遍歷可能含有空單元或者單元值爲 0 的數組,參見 each() 函數。 three |
prev() 和 next() 的行爲相似,只除了它將內部指針倒回一位而不是前移一位。
例 1. prev() 及相關函數用法示例
<?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport); // $mode = 'bike'; $mode = next($transport); // $mode = 'car'; $mode = prev($transport); // $mode = 'bike'; $mode = end($transport); // $mode = 'plane'; ?> |
|
-------------------------------------------------------------------------------------------------------
next
next -- 將數組中的內部指針向前移動一位
說明
mixed
next
( array &array )
返回數組內部指針指向的下一個單元的值,或當沒有更多單元時返回 FALSE。
next() 和 current() 的行爲相似,只有一點區別,在返回值以前將內部指針向前移動一位。這意味着它返回的是下一個數組單元的值並將數組指針向前移動了一位。若是移動指針的結果是超出了數組單元的末端,則 next() 返回 FALSE。
警告 |
若是數組包含空的單元,或者單元的值是 0 則本函數碰到這些單元也返回 FALSE。要正確遍歷可能含有空單元或者單元值爲 0 的數組,參見 each() 函數。 |
例 1. next() 及相關函數的用法示例
<?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport); // $mode = 'bike'; $mode = next($transport); // $mode = 'car'; $mode = prev($transport); // $mode = 'bike'; $mode = end($transport); // $mode = 'plane'; ?> |
|
-------------------------------------------------------------------------------------------------------
key
key -- 從關聯數組中取得鍵名
說明
mixed
key
( array &array )
key() 返回數組中當前單元的鍵名。
例 1. key() 例子
<?php $array = array( 'fruit1' => 'apple', 'fruit2' => 'orange', 'fruit3' => 'grape', 'fruit4' => 'apple', 'fruit5' => 'apple'); // this cycle echoes all associative array // key where value equals "apple" while ($fruit_name = current($array)) { if ($fruit_name == 'apple') { echo key($array).'<br />'; } next($array); } ?> |
|
-------------------------------------------------------------------------------------------------------
reset
reset -- 將數組的內部指針指向第一個單元
說明
mixed
reset
( array &array )
reset() 將 array 的內部指針倒回到第一個單元並返回第一個數組單元的值,若是數組爲空則返回 FALSE。
例 1. reset() 例子
<?php $array = array('step one', 'step two', 'step three', 'step four'); // by default, the pointer is on the first element echo current($array) . "<br />/n"; // "step one" // skip two steps next($array); next($array); echo current($array) . "<br />/n"; // "step three" // reset pointer, start again on step one reset($array); echo current($array) . "<br />/n"; // "step one" ?> |
|
-------------------------------------------------------------------------------------------------------
each
each -- 返回數組中當前的鍵/值對並將數組指針向前移動一步
說明
array
each
( array &array )
返回 array 數組中當前指針位置的鍵/值對並向前移動數組指針。鍵值對被返回爲四個單元的數組,鍵名爲 0,1,key 和 value。單元 0 和 key 包含有數組單元的鍵名,1 和 value 包含有數據。
若是內部指針越過了數組的末端,則 each() 返回 FALSE。
例 1. each() 例子
<?php $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese"); $bar = each($foo); print_r($bar); ?> |
$bar 如今包含有以下的鍵/值對:
Array { [1] => bob [value] => bob [0] => 0 [key] => 0 } |
|
<?php $foo = array("Robert" => "Bob", "Seppo" => "Sepi"); $bar = each($foo); print_r($bar); ?> |
$bar 如今包含有以下的鍵/值對:
Array { [1] => Bob [value] => Bob [0] => Robert [key] => Robert } |
each() 常常和 list() 結合使用來遍歷數組,例如:
例 2. 用 each() 遍歷數組
<?php $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); reset($fruit); while (list($key, $val) = each($fruit)) { echo "$key => $val/n"; } ?> |
上例將輸出:
a => apple b => banana c => cranberry |
|
在執行 each() 以後,數組指針將停留在數組中的下一個單元或者當碰到數組結尾時停留在最後一個單元。若是要再用 each 遍歷數組,必須使用 reset()。