php array 處理函數

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 數組中當前指針位置的鍵/值對並向前移動數組指針。鍵值對被返回爲四個單元的數組,鍵名爲 01key  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()

相關文章
相關標籤/搜索