PHP數(shù)組元素循環(huán)

2018-02-22 16:40 更新

PHP教程 - PHP數(shù)組元素循環(huán)

PHP為我們提供了一組數(shù)組訪問函數(shù)我們可以使用遍歷數(shù)組中的每個元素,不管元素是如何索引的。

PHP維護(hù)一個指向數(shù)組元素的內(nèi)部指針。這個指針最初指向第一個元素,但您可以通過數(shù)組向前和向后移動指針。

功能

要操作指針并訪問它所指向的元素,請使用以下函數(shù):

功能 描述
current() 獲取當(dāng)前元素的指針,而不改變指針位置。
key() 獲取指針指向的當(dāng)前元素的索引,而不改變指針位置。
next() 將指針向前移動到下一個元素,并返回該元素的值。
prev() 將指針向后移動到前一個元素,并返回該元素的值。
end() 將指針移動到數(shù)組中的最后一個元素,并返回該元素的值。
reset() 將指針移動到數(shù)組中的第一個元素,并返回該元素的值。

每個這些函數(shù)只需要一個參數(shù),數(shù)組,并返回必需元素的值或索引,如果元素不能被找到,則為false。

如果在指針位于數(shù)組末尾時使用next(),或者在空數(shù)組上使用current()。他們會返回假。



例子

逐步數(shù)組

<?php 
 $authors = array( "Java", "PHP", "CSS", "HTML" ); 
 echo "The array: " . print_r( $authors, true ) . "\n"; 
 echo "The current element is: " . current( $authors ) . "\n"; 
 echo "The next element is: " . next( $authors ) . "\n"; 
 echo "...and its index is: " . key( $authors ) . "\n"; 
 echo "The next element is: " . next( $authors ) . "\n"; 
 echo "The previous element is: " . prev( $authors ) . "\n"; 
 echo "The first element is: " . reset( $authors ) . "\n"; 
 echo "The last element is: " . end( $authors ) . "\n"; 
 echo "The previous element is: " . prev( $authors ) . "\n"; 
 ?>  

上面的代碼生成以下結(jié)果。



實施例2

檢索數(shù)組的最后一個元素,而不知道它是如何索引的。

<?PHP
// Create a sparse indexed array 
$authors = array( 0 =>  "Java", 1 =>  "PHP", 2 =>  "CSS", 47 => "HTML" ); 
echo end( $authors ); // Displays "HTML"   
?>

上面的代碼生成以下結(jié)果。

每個功能

each()返回一個四元素數(shù)組,而不是一個值。此數(shù)組包含當(dāng)前元素的鍵以及其值。如果元素不能被檢索,因為指針已經(jīng)到達(dá)或者因為數(shù)組為空,each()返回false。

這使得很容易判斷每個()是否檢索到值為false的元素在這種情況下,它返回四元素數(shù)組或如果它不能檢索一個元素,在這種情況下它返回false。

四元素數(shù)組each()包含數(shù)字和字符串索引的元素,如下所示:

元素索引 元素值
0 當(dāng)前元素的鍵
"key" 當(dāng)前元素的鍵
1 當(dāng)前元素的值
"value" 當(dāng)前元素的值

換句話說,您可以使用0或“key"的索引訪問當(dāng)前元素的鍵,或索引1或“值"來訪問其值。 例如:

<?PHP
    $myBook = array( "title" =>  "Learn PHP from hgci.cn", 
                    "author" =>  "hgci.cn", 
                    "pubYear" =>  2000 ); 

    $element = each( $myBook ); 
    echo "Key: " . $element[0] . "\n"; 
    echo "Value: " . $element[1] . "\n"; 
    echo "Key: " . $element["key"] . "\n"; 
    echo "Value: " . $element["value"] . "\n";   
?>         

上面的代碼生成以下結(jié)果。

實施例3

使用each()檢索值為false的數(shù)組元素:

<?PHP
         $myArray = array( false ); 
         $element = each( $myArray ); 
         $key = $element["key"]; // $key now equals 0 
         $val = $element["value"]; // $val now equals false   
?>

因為each()都返回當(dāng)前數(shù)組元素并前進(jìn)數(shù)組指針,它很容易使用它在一個while循環(huán)移動通過所有元素的數(shù)組。 以下示例通過$ myBook數(shù)組,返回每個元素的鍵和值。

<?php 
  $myBook = array( "title" =>  "Learn PHP from hgci.cn", 
                   "author" =>  "hgci.cn", 
                   "pubYear" =>  2000 ); 

   while ( $element = each( $myBook ) ) { 
            echo " < dt > $element[0] < /dt > "; 
            echo " < dd > $element[1] < /dd > "; 
   } 
?>  

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號