PHP中的數(shù)組功能非常強(qiáng)大,數(shù)組處理函數(shù)有著強(qiáng)大、靈活、高效的特點(diǎn)。PHP5提供了近100個(gè)操作數(shù)組的系統(tǒng)函數(shù),包括排序函數(shù)、替換函數(shù)、數(shù)組計(jì)算函數(shù)等。下面將詳細(xì)介紹數(shù)組函數(shù)
[注意]關(guān)于javascript數(shù)組的22種方法移步至此
數(shù)組的每個(gè)元素都是由鍵值對(duì)組成,通過元素的鍵名來訪問對(duì)應(yīng)的鍵值。關(guān)于鍵值操作有array_html' target='_blank'>values()、array_keys()、in_array()、array_flip()和array_reverse()這5個(gè)常用函數(shù)
array_values
array_values() 返回 input 數(shù)組中所有的值并給其建立數(shù)字索引
array array_values ( array $input )
<?php$array = array('size' => 'XL', 'color' => 'gold');//Array ( [0] => XL [1] => gold )print_r(array_values($array));?>
array_keys
array_keys() 返回 input 數(shù)組中的數(shù)字或者字符串的鍵名
array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )
如果指定了可選參數(shù) search_value,則只返回該值的鍵名。否則 input 數(shù)組中的所有鍵名都會(huì)被返回
如果指定了可選參數(shù) strict,表示判斷在搜索的時(shí)候是否該使用嚴(yán)格的比較(===)
<?php$array = array(0 => 100, 'color' => 'red');//Array ( [0] => 0 [1] => color ) print_r(array_keys($array));$array = array('blue', 'red', 'green', 'blue', 'blue');// Array ( [0] => 0 [1] => 3 [2] => 4 ) print_r(array_keys($array, 'blue'));$array = array('color' => array('blue', 'red', 'green'), 'size' => array('small', 'medium', 'large'));Array ( [0] => color [1] => size )print_r(array_keys($array));?>
in_array
in_array — 檢查數(shù)組中是否存在某個(gè)值
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
如果第三個(gè)參數(shù) strict 的值為 TRUE 則 in_array() 函數(shù)還會(huì)檢查 needle 的類型是否和 haystack 中的相同
<?php$os = array('Mac', 'NT', 'Irix', 'Linux');if (in_array('Irix', $os)) { //Got Irix echo 'Got Irix';}if (in_array('mac', $os)) { echo 'Got mac';}?>
array_flip
array_flip — 交換數(shù)組中的鍵和值,成功時(shí)返回交換后的數(shù)組,如果失敗返回 NULL
array array_flip ( array $trans )
array_flip() 返回一個(gè)反轉(zhuǎn)后的 array,例如 trans 中的鍵名變成了值,而 trans 中的值成了鍵名
如果同一個(gè)值出現(xiàn)了多次,則最后一個(gè)鍵名將作為它的值,所有其它的都丟失了
[注意]trans中的值需要能夠作為合法的鍵名,例如需要是 integer 或者 string。如果值的類型不對(duì)將發(fā)出一個(gè)警告,并且有問題的鍵/值對(duì)將不會(huì)反轉(zhuǎn)
<?php$trans = array('a' => 1, 'b' => 1, 'c' => 2);$trans = array_flip($trans);//Array ( [1] => b [2] => c )print_r($trans);?>
array_reverse
array_reverse — 返回一個(gè)單元順序相反的數(shù)組
array array_reverse ( array $array [, bool $preserve_keys = false ] )
如果參數(shù)preserve_keys設(shè)置為 TRUE 會(huì)保留數(shù)字的鍵。非數(shù)字的鍵則不受這個(gè)設(shè)置的影響,總是會(huì)被保留
<?php$input = array('php', 4.0, array('green', 'red'));$result = array_reverse($input);/*array (size=3) 0 => array (size=2) 0 => string 'green' (length=5) 1 => string 'red' (length=3) 1 => float 4 2 => string 'php' (length=3) */var_dump($result);$result_keyed = array_reverse($input, true);/*array (size=3) 2 => array (size=2) 0 => string 'green' (length=5) 1 => string 'red' (length=3) 1 => float 4 0 => string 'php' (length=3) */var_dump($result_keyed);?>
count
count — 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)
int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
如果可選的 mode 參數(shù)設(shè)為 COUNT_RECURSIVE(或 1),count() 將遞歸地對(duì)數(shù)組計(jì)數(shù)。對(duì)計(jì)算多維數(shù)組的所有單元尤其有用。mode 的默認(rèn)值是 0。count() 識(shí)別不了無限遞歸
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選