php -- php數組相關函數

來源:互聯網
上載者:User

標籤:

array range ( mixed $low , mixed $high [, number $step ] )

建立一個連續的數組

range(‘a‘,‘z‘);foreach (range(0, 12) as $number) {echo $number;}// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

 

 

bool shuffle ( array &$array )

對數組進行隨機排序

<?php$numbers = range(1, 20);shuffle($numbers);foreach ($numbers as $number) {echo "$number ";}?>

 

array each ( array &$array )

返回一個當前數組指標所指向的數組元素資訊,該返回數組包含4個元素,其中下標為0和key的鍵的值對應指標所對應的數組元素的鍵,1和value的鍵對應的值為當前指標所指向數組元素的值,

同時將數組指標向下移動一位。可以使用reset()函數來使其指標重設

<?php$fruit = array(‘a‘ => ‘apple‘, ‘b‘ => ‘banana‘, ‘c‘ => ‘cranberry‘);reset($fruit);while (list($key, $val) = each($fruit)) {echo "$key => $val\n";}?>

 

 

mixed current ( array &$array )

返回當前數組指標所指的元素,但並不移動數組指標。如果該數組時一個空數組或者數組指標超過的數組中的最後一個元素,返回false。(注意判斷是否為false使請小心,因為如果指標所在元

素值為0或者false,也可能導致返回的結果為false,可以使用"==="來判定)。

 

 

mixed prev ( array &$array )

將數組指標向前移動一個位置,當指標無法向前移動時,該方法將返回false。

 

 

mixed next ( array &$array )

將數組指標向後移動一位,並返回其元素值。

 

 

mixed end ( array &$array )

將數組指標移動到數組中的最後一個元素,並將其元素值返回,如果數組為空白,將返回false。

 

 

mixed reset ( array &$array )

重設元素指標到第一個元素位置處,如果元素為空白,將返回false。

 

 

mixed key ( array &$array )

返回當前數組指標所在元素的鍵,如果為空白數組或指標指向了數組最大元素後面的元素,將返回null。

 

 

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

將數組中的元素從小到大排序(排序區分大小寫,大寫字母將排在小寫字母前面.而且該函數會將刪除原有的鍵名而不僅是重新排序)

$sort_flags 參數:

SORT_REGULAR正常格式排序,為預設排序方式

SORT_NUMERIC將元素按照數字進行排序

SORT_STRING將元素按照字串進行排序

排序成功返回true,否則返回false

 

 

bool asort ( array &array [, int sort_flags] )

對數組元素的值進行升序排序,並保持鍵的關聯。如果成功則返回 TRUE,失敗則返回 FALSE。sort_flags與sort函數相同

 

 

bool arsort ( array &array [, int sort_flags] )

對數組元素的值進行降序排序,並保持鍵的關聯。如果成功則返回 TRUE,失敗則返回 FALSE。sort_flags與sort函數相同

 

 

bool ksort ( array &array [, int sort_flags] )

按照鍵名對數組進行升序排序,並保留對應的索引值對應。如果成功則返回 TRUE,失敗則返回 FALSE。sort_flags與sort函數相同

 

 

bool krsort ( array &array [, int sort_flags] )

按照鍵名對數組進行降序排序,並保留對應的索引值對應。如果成功則返回 TRUE,失敗則返回 FALSE。sort_flags與sort函數相同

 

 

bool usort ( array &$array , callback $cmp_function )

對數組進行使用者自訂的函數cmp_function來進行排序。比較函數必須在第一個參數被認為小於,等於或大於第二個參數時分別返回一個小於,等於或大於零的整數。 

本函數為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。

 

 

bool uasort ( array &array, callback cmp_function )

uasort() 函數使用使用者自訂的比較函數對數組排序,並保持索引關聯(不為元素分配新的鍵)。

如果成功則返回 TRUE,否則返回 FALSE。

該函數主要用於對那些單元順序很重要的結合數組進行排序

<?phpfunction my_sort($a, $b)  {  if ($a == $b) return 0;  return ($a > $b) ? -1 : 1;  }$people = array("Swanson" => "Joe", "Griffin" => "Peter", "Quagmire" => "Glenn","swanson" => "joe", "griffin" => "peter","quagmire" => "glenn"); uasort($people, "my_sort");print_r ($people);?>

結果:

Array([griffin] => peter[swanson] => joe[quagmire] => glenn[Griffin] => Peter[Swanson] => Joe[Quagmire] => Glenn)

 

bool uksort ( array &array, callback cmp_function )

uksort() 函數使用使用者自訂的比較函數按照鍵名對數組排序,並保持索引關係。

如果成功則返回 TRUE,否則返回 FALSE。

如果要排序的數組需要用一種不尋常的標準進行排序,那麼應該使用此函數。

自訂函數應接受兩個參數,該參數將被數組中的一對鍵名填充。比較函數在第一個參數小於,等於,或大於第二個參數時必須分別返回一個小於零,等於零,或大於零的整數。

<?phpfunction my_sort($a, $b)  {  if ($a == $b) return 0;  return ($a > $b) ? -1 : 1;  }$people = array("Swanson" => "Joe", "Griffin" => "Peter", "Quagmire" => "Glenn","swanson" => "joe", "griffin" => "peter","quagmire" => "glenn"); uksort($people, "my_sort");print_r ($people);?>

結果:

Array([swanson] => joe[quagmire] => glenn[griffin] => peter[Swanson] => Joe[Quagmire] => Glenn[Griffin] => Peter)
 

 

array array_reverse ( array $array [, bool $preserve_keys = false ] )

對數組進行逆向排序,如果$preserve_keys為ture,則保留原來鍵名。

 

 

int array_push ( array &array, mixed var [, mixed ...] )

將一個或多個元素推送到數組末尾,數組長度也會相應進行變化。注: 如果用 array_push() 來給數組增加一個單元,還不如用 $array[] = ,因為這樣沒有調用函數的額外負擔。 該函數將返

回一個添加元素後的新函數。

 

 

mixed array_pop ( array &$array )

將數組元素的最後一個元素刪除,並返回該元素,如果元素為空白,則返回null。

 

 

mixed array_shift ( array &array )

將數組的第一個單元移出並作為結果返回,將 array 的長度減一併將所有其它單元向前移動一位。所有的數字鍵名將改為從零開始計數,文字鍵名將不變。如果 array 為空白(或者不是數組),

則返回 NULL。

 

 

int array_unshift ( array &array, mixed var [, mixed ...] )

將傳入的單元插入到數組的開頭。注意單元是作為整體被插入的,因此傳入單元將保持同樣的順序。所有的數值鍵名將修改為從零開始重新計數,所有的文字鍵名保持不變。

 

 

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

對數組中的每個元素調用使用者自訂函數。典型情況下 funcname 接受兩個參數。array 參數的值作為第一個,鍵名作為第二個。如果提供了選擇性參數 userdata,將被作為第三個參數傳遞給

callback funcname。 

注: 如果 funcname 需要直接作用於數組中的值,則給 funcname 的第一個參數指定為引用。這樣任何對這些單元的改變也將會改變原始數組本身。

 

 

bool array_walk_recursive ( array &input, callback funcname [, mixed userdata] )

將使用者自訂函數 funcname 應用到 array 數組中的每個單元。本函數會遞迴到更深層的數組中去。典型情況下 funcname 接受兩個參數。input 參數的值作為第一個,鍵名作為第二個。如

果提供了選擇性參數 userdata,將被作為第三個參數傳遞給 callback funcname。 如果成功則返回 TRUE,失敗則返回 FALSE

 

 

array array_map ( callback callback, array arr1 [, array ...] )

返回一個數組,該數組包含了 arr1 中的所有單元經過 callback 作用過之後的單元。callback 接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。

 

 

int count ( mixed var [, int mode] )或者別名sizeof()

計算數組元素個數。如果可選的 mode 參數設為 COUNT_RECURSIVE(或 1),count() 將遞迴地對數組計數。對計算多維陣列的所有單元尤其有用。mode 的預設值是 0。count() 識別

不了無限遞迴。

 

 

array array_count_values ( array input )

返回一個數組,該數組用 input 數組中的值作為鍵名,該值在 input 數組中出現的次數作為值。

 

 

array array_values ( array input )

返回 input 數組中所有的值並給其建立數字索引。

 

 

array array_keys ( array input [, mixed search_value [, bool strict]] )

返回 input 數組中的數字或者字串的鍵名。

 

 

bool array_key_exists ( mixed key, array search )

array_key_exists() 在給定的 key 存在於數組中時返回 TRUE。key 可以是任何能作為數組索引的值。array_key_exists() 也可用於對象。

 

 

bool in_array ( mixed needle, array haystack [, bool strict] )

在 haystack 中搜尋 needle,如果找到則返回 TRUE,否則返回 FALSE。 

如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同。 如果 needle 是字串,則比較是區分大小寫。 在 PHP 版本 4.2.0 之前,

needle 不允許是一個數組。

 

 

mixed array_search ( mixed needle, array haystack [, bool strict] )

在 haystack 中搜尋 needle 參數並在找到的情況下返回鍵名,否則返回 FALSE。 

如果可選的第三個參數 strict 為 TRUE,則 array_search() 還將在 haystack 中檢查 needle 的類型。 

如果 needle 在 haystack 中出現不止一次,則返回第一個匹配的鍵。要返回所有匹配值的鍵,應該用 array_keys() 加上選擇性參數 search_value 來代替。

 

 

int extract ( array var_array [, int extract_type [, string prefix]] )

本函數用來將變數從數組中匯入到當前的符號表中。接受結合數組 var_array 作為參數並將鍵名當作變數名,值作為變數的值。對每個鍵/值對都會在當前的符號表中建立變數,並受到

extract_type 和 prefix 參數的影響。

 

 

array compact ( mixed varname [, mixed ...] )

compact() 接受可變的參數數目。每個參數可以是一個包括變數名的字串或者是一個包含變數名的數組,該數組中還可以包含其它單元內容為變數名的數組, compact() 可以遞迴處理。 

對每個參數,compact() 在當前的符號表中尋找該變數名並將它添加到輸出的數組中,變數名成為鍵名而變數的內容成為該鍵的值。簡單說,它做的事和 extract() 正好相反。返回將所有變數

添加進去後的數組。

 

 

array array_chunk ( array input, int size [, bool preserve_keys] )

將一個數組分割成多個數組,其中每個數組的單元數目由 size 決定。最後一個數組的單元數目可能會少幾個。得到的數組是一個多維陣列中的單元,其索引從零開始。 

將選擇性參數 preserve_keys 設為 TRUE,可以使 PHP 保留輸入數組中原來的鍵名。如果你指定了 FALSE,那每個結果數組將用從零開始的新數字索引。預設值是 FALSE。

 

 

array array_combine ( array keys, array values )

返回一個 array,用來自 keys 數組的值作為鍵名,來自 values 數組的值作為相應的值。 

如果兩個數組的單元數不同或者數組為空白時返回 FALSE。

 

 

array array_filter ( array input [, callback callback] )

array_filter() 依次將 input 數組中的每個值傳遞到 callback 函數。如果 callback 函數返回 TRUE,則 input 數組的當前值會被包含在返回的結果數組中。數組的鍵名保留不變。

 

 

array_merge()

將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。 

如果輸入的數組中有相同的字串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。 

如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。

php -- php數組相關函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.