當前位置: 首頁> 函數類別大全> array_walk

array_walk

使用用戶自定義函數對數組中的每個元素做回調處理
名稱:array_walk
分類:數組
所屬語言:php
一句話介紹:對數組中的每個成員應用用戶函數。

定義和用法

array_walk()函數對數組中的每個元素應用用戶自定義函數。在函數中,數組的鍵名和鍵值是參數。

註釋:您可以通過把用戶自定義函數中的第一個參數指定為引用:&$value,來改變數組元素的值(參見實例2)。

提示:如需操作更深的數組(一個數組中包含另一個數組),請使用array_walk_recursive()函數。

實例

例子1

對數組中的每個元素應用用戶自定義函數:

 <?php
function myfunction ( $value , $key )
{
echo "The key $key has the value $value <br>" ;
}
$a = array ( "a" => "red" , "b" => "green" , "c" => "blue" ) ;
array_walk ( $a , "myfunction" ) ;
?>

親自試一試

例子2

設置一個參數:

 <?php
function myfunction ( $value , $key , $p )
{
echo " $key $p $value <br>" ;
}
$a = array ( "a" => "red" , "b" => "green" , "c" => "blue" ) ;
array_walk ( $a , "myfunction" , "has the value" ) ;
?>

親自試一試

例子3

更改一個數組元素的值(請注意&$value):

 <?php
function myfunction ( & $value , $key )
{
$value = "yellow" ;
}
$a = array ( "a" => "red" , "b" => "green" , "c" => "blue" ) ;
array_walk ( $a , "myfunction" ) ;
print_r ( $a ) ;
?>

親自試一試

文法

array_walk ( array , myfunction , userdata ... )
參數 描述
array 必需。規定數組。
myfunction 必需。用戶自定義函數的名稱。
userdata ,... 可選。規定用戶自定義函數的參數。您能夠向此函數傳遞任意多參數。

說明

array_walk()函數對數組中的每個元素應用回調函數。如果成功則返回TRUE,否則返回FALSE。

典型情況下myfunction接受兩個參數。 array參數的值作為第一個,鍵名作為第二個。如果提供了可選參數userdata ,將被作為第三個參數傳遞給回調函數。

如果myfunction函數需要的參數比給出的多,則每次array_walk() 調用myfunction時都會產生一個E_WARNING 級的錯誤。這些警告可以通過在array_walk()調用前加上PHP 的錯誤操作符@ 來抑制,或者用error_reporting()

註釋:如果回調函數需要直接作用於數組中的值,可以將回調函數的第一個參數指定為引用:&$value。 (參見例子3)

註釋:將鍵名和userdata傳遞到myfunction中是PHP 4.0 新增加的。

同類函數
  • 打亂數組 shuffle

    shuffle

    打亂數組
  • 對數組中所有值求和 array_sum

    array_sum

    對數組中所有值求和
  • 統計數組中各個的值的個數 array_count_values

    array_count_values

    統計數組中各個的值的個數
  • 去掉數組中的某一部分並用其它值取代 array_splice

    array_splice

    去掉數組中的某一部分並用其它值取代
  • 使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯 uasort

    uasort

    使用用戶自定義的比較函數對數組中的值進行
  • 將數組的內部指針指向第一個單元 reset

    reset

    將數組的內部指針指向第一個單元
  • 交換數組中的鍵和值 array_flip

    array_flip

    交換數組中的鍵和值
  • 遞歸地合併一個或多個數組 array_merge_recursive

    array_merge_recursive

    遞歸地合併一個或多個數組
熱門文章