php數組指針用于操作數組。數組指針是數組內部的組織機制,每個數組都有一個內部的指針指向它“當前的”單元(元素),這個指針最初指向的是當前數組中的第一個單元;通過移動或改變數組指針的位置,可以訪問數組中的任意元素。對于數組指針的控制PHP提供了多個內置函數:current()、pos()、key()、next()、prev()、end()、reset()。
本教程操作環境:windows7系統、PHP8版、DELL G3電腦
php數組指針用于操作數組。
在php中,數組指針是數組內部的組織機制,指向一個數組中的某個元素。
每個數組都有一個內部的指針指向它“當前的”單元(元素),這個指針最初指向的是當前數組中的第一個單元。
通過移動或改變指針的位置,可以訪問數組中的任意元素。對于數組指針的控制PHP提供了以下幾個內置函數可以利用。
-
current():返回數組的當前元素
-
pos():current 的別名,用法一樣。
-
key():讀取當前指針所指向資料的索引值(鍵值)。
-
next():將數組中的內部指針移動到下一個單元。
-
prev():將數組的內部指針倒回一位。
-
end():將數組的內部指針指向最后一個元素。
-
reset():將目前指針無條件移至第一個索引位置。
這些函數的參數都是只有一個,就是要操作的數組本身。
在下面的示例中,將使用這些數組指針函數控制數組中元素的讀取順序。代碼如下所示:
<?php header('content-type:text/html;charset=utf-8'); $contact = array( "ID" => 1, "姓名" => "高某", "公司" => "A公司", "地址" => "北京市", "電話" => "(010)98765432", "EMAIL" => "gao@brophp.com", ); //數組剛聲明時,數組指針在數組中第一個元素位置 echo '第一個元素:'.key($contact).' => '.current($contact).'<br>'; //第一個元素 echo '第一個元素:'.key($contact).' => '.current($contact).'<br>'; //數組指針沒動 next($contact); next($contact); echo '第三個元素:'.key($contact).' => '.current($contact).'<br>'; //第三個元素 end($contact); echo '最后一個元素:'.key($contact).' => '.current($contact).'<br>'; prev($contact); echo '倒數第二個元素:'.key($contact).' => '.current($contact).'<br>'; reset($contact); echo '又回到了第一個元素:'.key($contact).' => '.current($contact).'<br>'; ?>
下面一個個來介紹一下。
current()函數
參數是一個數組,引用傳值,返回當前數組指針所指向的值,指針移動超出了數組的末尾,返回false,在數組為空的情況下返回false
數組的指針默認在數組的第一位
<?php $arr = [11,22,33,44,55,66]; echo current($arr); ?>
key()函數
參數是一個數組,引用傳值,返回當前指針所指向的元素的鍵,當指針所指的那一位沒有元素返回null,空數組返回null
<?php $arr = [11,22,33,44,55,66]; var_dump($arr); echo current($arr)."<br>"; //當前指針指向11 echo key($arr)."<br>"; //當前元素的鍵名 ?>
next()函數
參數是一個數組,引用傳值,移動數組指針到下一位,返回該位的值,當該位沒有元素時返回false,空數組也會返回false
<?php $arr = [11,22,33,44,55,66]; echo current($arr)."<br>"; //指針指向11 next($arr); //指針指向22 echo current($arr)."<br>"; //指針指向22 next($arr); //指針指向33 next($arr); //指針指向44 echo current($arr)."<br>"; //指針指向44 ?>
prev()函數
參數是一個數組,引用傳值,移動數組指針到上一位,返回該位的值,當該位沒有元素時返回false,空數組也會返回false
<?php $arr = [11,22,33,44,55,66]; echo current($arr)."<br>"; //指針指向11 next($arr); //指針指向22 next($arr); //指針指向33 echo current($arr)."<br>"; //指針指向33 prev($arr); //指針指向22 echo current($arr)."<br>"; //指針指向22 ?>
end()函數
參數是一個數組,引用傳值,將一個數組的內部指針移動到數組的最后一個元素所在的位置,然后返回最后一個元素的值,在數組為空的情況下返回false
<?php $arr = [11,22,33,44,55,66]; echo current($arr)."<br>"; //指針指向11 end($arr); //指針指向11 echo current($arr)."<br>"; //指針指向66 ?>
reset()函數
參數是一個數組,引用傳值,將一個數組的內部指針重置到首位,也就是數組的第一個元素所在的位置,然后返回第一個元素的值,在數組為空的情況下返回false
<?php $arr = [11,22,33,44,55,66]; echo current($arr)."<br>"; //指針指向11 next($arr); //指針指向22 next($arr); //指針指向33 echo current($arr)."<br>"; //指針指向33 reset($arr); //指針指向11 echo current($arr)."<br>"; //指針指向11 ?>
推薦學習:《PHP視頻教程》