PHP數(shù)組函數(shù),摘錄于PHP手冊
| 函數(shù)名稱 | 解釋 |
|---|---|
| array_change_key_case | 將數(shù)組中的所有鍵名修改為全大寫或小寫 |
| array_chunk | 將一個數(shù)組分割成多個 |
| array_column | 返回數(shù)組中指定的一列 |
| array_combine | 創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值 |
| array_count_values | 統(tǒng)計數(shù)組中所有的值 |
| array_fill_keys | 使用指定的鍵和值填充數(shù)組 |
| array_fill | 用給定的值填充數(shù)組 |
| array_filter | 用回調(diào)函數(shù)過濾數(shù)組中的單元 |
| array_flip | 交換數(shù)組中的鍵和值 |
| array_key_exists | 檢查數(shù)組里是否有指定的鍵名或索引 |
| array_keys | 返回數(shù)組中部分的或所有的鍵名 |
| array_map | 為數(shù)組的每個元素應(yīng)用回調(diào)函數(shù) |
| array_merge | 合并一個或多個數(shù)組 |
| array_merge_recursive | 遞歸地合并一個或多個數(shù)組 |
| array_multisort | 對多個數(shù)組或多維數(shù)組進(jìn)行排序 |
| array_pad | 以指定長度將一個值填充進(jìn)數(shù)組 |
| array_pop | 彈出數(shù)組最后一個單元(出棧) |
| array_product | 計算數(shù)組中所有值的乘積 |
| array_push | 將一個或多個單元壓入數(shù)組的末尾(入棧) |
| array_rand | 從數(shù)組中隨機(jī)取出一個或多個單元 |
| array_reduce | 用回調(diào)函數(shù)迭代地將數(shù)組簡化為單一的值 |
| array_replace | 使用傳遞的數(shù)組替換第一個數(shù)組的元素 |
| array_replace_recursive | 使用傳遞的數(shù)組遞歸替換第一個數(shù)組的元素 |
| array_reverse | 返回單元順序相反的數(shù)組 |
| array_search | 在數(shù)組中搜索給定的值,如果成功則返回首個相應(yīng)的鍵名 |
| array_shift | 將數(shù)組開頭的單元移出數(shù)組 |
| array_slice | 從數(shù)組中取出一段 |
| array_splice | 去掉數(shù)組中的某一部分并用其它值取代 |
| array_sum | 對數(shù)組中所有值求和 |
| array_udiff_assoc | 帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù) |
| array_udiff_uassoc | 帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)和索引 |
| array_udiff | 用回調(diào)函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集 |
| array_unique | 移除數(shù)組中重復(fù)的值 |
| array_unshift | 在數(shù)組開頭插入一個或多個單元 |
| array_values | 返回數(shù)組中所有的值 |
| array_walk | 使用用戶自定義函數(shù)對數(shù)組中的每個元素做回調(diào)處理 |
| array_walk_recursive | 對數(shù)組中的每個成員遞歸地應(yīng)用用戶函數(shù) |
| array | 新建一個數(shù)組 |
| arsort | 對數(shù)組進(jìn)行逆向排序并保持索引關(guān)系 |
| asort | 對數(shù)組進(jìn)行排序并保持索引關(guān)系 |
| compact | 建立一個數(shù)組,包括變量名和它們的值 |
| count | 計算數(shù)組中的單元數(shù)目,或?qū)ο笾械膶傩詡€數(shù) |
| current | 返回數(shù)組中的當(dāng)前單元 |
| each | 返回數(shù)組中當(dāng)前的鍵/值對并將數(shù)組指針向前移動一步 |
| end | 將數(shù)組的內(nèi)部指針指向最后一個單元 |
| extract | 從數(shù)組中將變量導(dǎo)入到當(dāng)前的符號表 |
| in_array | 檢查數(shù)組中是否存在某個值 |
| key_exists | 別名 array_key_exists |
| key | 從關(guān)聯(lián)數(shù)組中取得鍵名 |
| krsort | 對數(shù)組按照鍵名逆向排序 |
| ksort | 對數(shù)組按照鍵名排序 |
| list | 把數(shù)組中的值賦給一組變量 |
| next | 將數(shù)組中的內(nèi)部指針向前移動一位 |
| pos | current 的別名 |
| prev | 將數(shù)組的內(nèi)部指針倒回一位 |
| range | 根據(jù)范圍創(chuàng)建數(shù)組,包含指定的元素 |
| reset | 將數(shù)組的內(nèi)部指針指向第一個單元 |
| rsort | 對數(shù)組逆向排序 |
| shuffle | 打亂數(shù)組 |
| sizeof | count 的別名 |
| sort | 對數(shù)組排序 |
| uasort | 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序并保持索引關(guān)聯(lián) |
| uksort | 使用用戶自定義的比較函數(shù)對數(shù)組中的鍵名進(jìn)行排序 |
| usort | 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序 |
1、array_change_key_case
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_change_key_case — 將數(shù)組中的所有鍵名修改為全大寫或小寫
- 說明
array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )
array_change_key_case() 將 array 數(shù)組中的所有鍵名改為全小寫或大寫。本函數(shù)不改變數(shù)字索引。 - 參數(shù)
array:需要操作的數(shù)組。
case:可以在這里用兩個常量,CASE_UPPER 或 CASE_LOWER(默認(rèn)值)。 - 返回值
返回一個鍵全是小寫或者全是大寫的數(shù)組;如果輸入值(array)不是一個數(shù)組,那么返回FALSE - 錯誤/異常
如果輸入值(array)不是一個數(shù)組,就會拋出一個錯誤警告(E_WARNING) - 范例
<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
以上例程會輸出:
Array
(
[FIRST] => 1
[SECOND] => 4
)
2、array_chunk
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_chunk — 將一個數(shù)組分割成多個
- 說明
array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
將一個數(shù)組分割成多個數(shù)組,其中每個數(shù)組的單元數(shù)目由 size 決定。最后一個數(shù)組的單元數(shù)目可能會少于 size 個。 - 參數(shù)
array:需要操作的數(shù)組
size:每個數(shù)組的單元數(shù)目
preserve_keys:設(shè)為 TRUE,可以使 PHP 保留輸入數(shù)組中原來的鍵名。如果你指定了 FALSE,那每個結(jié)果數(shù)組將用從零開始的新數(shù)字索引。默認(rèn)值是 FALSE。 - 返回值
得到的數(shù)組是一個多維數(shù)組中的單元,其索引從零開始,每一維包含了 size 個元素。 - 錯誤/異常
如果 size 小于 1,會拋出一個 E_WARNING 錯誤并返回 NULL。 - 范例
<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>
以上例程會輸出:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)
)
- 參見
array_slice() - 從數(shù)組中取出一段
3、array_column
(PHP 5 >= 5.5.0, PHP 7)
array_column — 返回數(shù)組中指定的一列
- 說明
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
array_column() 返回input數(shù)組中鍵值為column_key的列, 如果指定了可選參數(shù)index_key,那么input數(shù)組中的這一列的值將作為返回數(shù)組中對應(yīng)值的鍵。 - 參數(shù)
input
需要取出數(shù)組列的多維數(shù)組。 如果提供的是包含一組對象的數(shù)組,只有 public 屬性會被直接取出。 為了也能取出 private 和 protected 屬性,類必須實現(xiàn) __get() 和 __isset() 魔術(shù)方法。
column_key
需要返回值的列,它可以是索引數(shù)組的列索引,或者是關(guān)聯(lián)數(shù)組的列的鍵,也可以是屬性名。 也可以是NULL,此時將返回整個數(shù)組(配合index_key參數(shù)來重置數(shù)組鍵的時候,非常管用)
index_key
作為返回數(shù)組的索引/鍵的列,它可以是該列的整數(shù)索引,或者字符串鍵值。 - 返回值
從多維數(shù)組中返回單列數(shù)組。 - 范例 從結(jié)果集中取出first names列
<?php
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$first_names = array_column($records, 'first_name');
print_r($first_names);
?>
以上例程會輸出:
Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
4、array_combine
(PHP 5, PHP 7)
array_combine — 創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值
說明
array array_combine ( array $keys , array $values )
返回一個 array,用來自 keys 數(shù)組的值作為鍵名,來自 values 數(shù)組的值作為相應(yīng)的值。參數(shù)
keys
將被作為新數(shù)組的鍵。非法的值將會被轉(zhuǎn)換為字符串類型(string)。
values
將被作為 Array 的值。返回值
返回合并的 array,如果兩個數(shù)組的單元數(shù)不同則返回 FALSE。錯誤/異常
如果作為keys的數(shù)組和作為values的數(shù)組的元素個數(shù)不一樣,將會拋出一個警告錯誤(E_WARNING)。范例 一個 array_combine() 簡單的例子
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
以上例程會輸出:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
5、array_count_values
(PHP 4, PHP 5, PHP 7)
array_count_values — 統(tǒng)計數(shù)組中所有的值
- 說明
array array_count_values ( array $array )
array_count_values() 返回一個數(shù)組: 數(shù)組的鍵是 array 里單元的值; 數(shù)組的值是 array 單元的值出現(xiàn)的次數(shù)。 - 參數(shù)
input
統(tǒng)計這個數(shù)組的值 - 返回值
返回一個關(guān)聯(lián)數(shù)組,用 array 數(shù)組中的值作為鍵名,該值在數(shù)組中出現(xiàn)的次數(shù)作為值。 - 錯誤/異常
對數(shù)組里面的每個不是 string 和 integer 類型的元素拋出一個警告錯誤(E_WARNING)。 - 范例
<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>
以上例程會輸出:
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
6、array_fill_keys
(PHP 5 >= 5.2.0, PHP 7)
array_fill_keys — 使用指定的鍵和值填充數(shù)組
- 說明
array array_fill_keys ( array $keys , mixed $value )
使用 value 參數(shù)的值作為值,使用 keys 數(shù)組的值作為鍵來填充一個數(shù)組。 - 參數(shù)
keys:使用該數(shù)組的值作為鍵。非法值將被轉(zhuǎn)換為字符串。
value:填充使用的值。 - 返回值
返回填充后的數(shù)組。 - 范例
<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>
以上例程會輸出:
Array
(
[foo] => banana
[5] => banana
[10] => banana
[bar] => banana
)
7、array_fill
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_fill — 用給定的值填充數(shù)組
- 說明
array array_fill ( int $start_index , int $num , mixed $value )
array_fill() 用 value 參數(shù)的值將一個數(shù)組填充 num 個條目,鍵名由 start_index 參數(shù)指定的開始。 - 參數(shù)
start_index:返回的數(shù)組的第一個索引值。 如果 start_index 是負(fù)數(shù), 那么返回的數(shù)組的第一個索引將會是 start_index ,而后面索引則從0開始。 (參見 例子)。
num:插入元素的數(shù)量。 必須大于或等于 0。
value:用來填充的值。 - 返回值
返回填充后的數(shù)組。 - 錯誤/異常
如果 num 小于零,將會拋出 E_WARNING。 - 說明
5.6.0 num 現(xiàn)在可以是零。 之前 num 必須大于零。 - 范例
<?php
$a = array_fill(5, 6, 'banana');
$b = array_fill(-2, 4, 'pear');
print_r($a);
print_r($b);
?>
以上例程會輸出:
Array
(
[5] => banana
[6] => banana
[7] => banana
[8] => banana
[9] => banana
[10] => banana
)
Array
(
[-2] => pear
[0] => pear
[1] => pear
[2] => pear
)
8、array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — 用回調(diào)函數(shù)過濾數(shù)組中的單元
- 說明
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
依次將 array 數(shù)組中的每個值傳遞到 callback 函數(shù)。如果 callback 函數(shù)返回 true,則 array 數(shù)組的當(dāng)前值會被包含在返回的結(jié)果數(shù)組中。數(shù)組的鍵名保留不變。 - 參數(shù)
array:要循環(huán)的數(shù)組
callback:使用的回調(diào)函數(shù),如果沒有提供 callback 函數(shù), 將刪除 array 中所有等值為 FALSE 的條目。更多信息見轉(zhuǎn)換為布爾值。
flag:決定callback接收的參數(shù)形式:ARRAY_FILTER_USE_KEY - callback接受鍵名作為的唯一參數(shù)
ARRAY_FILTER_USE_BOTH - callback同時接受鍵名和鍵值 - 返回值
返回過濾后的數(shù)組。 - 范例
<?php
function odd($var)
{
// returns whether the input integer is odd
return($var & 1);
}
function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
以上例程會輸出:
Odd :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
9、array_flip
(PHP 4, PHP 5, PHP 7)
array_flip — 交換數(shù)組中的鍵和值
- 說明
array array_flip ( array $array )
array_flip() 返回一個反轉(zhuǎn)后的 array,例如 array 中的鍵名變成了值,而 array 中的值成了鍵名。
注意 array 中的值需要能夠作為合法的鍵名(例如需要是 integer 或者 string)。如果類型不對,將出現(xiàn)一個警告,并且有問題的鍵/值對將不會出現(xiàn)在結(jié)果里。
如果同一個值出現(xiàn)多次,則最后一個鍵名將作為它的值,其它鍵會被丟棄。 - 參數(shù)
array:要交換鍵/值對的數(shù)組。 - 返回值
成功時返回交換后的數(shù)組,如果失敗返回 NULL。 - 范例
<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);
print_r($flipped);
?>
以上例程會輸出:
Array
(
[oranges] => 0
[apples] => 1
[pears] => 2
)
10、array_key_exists
(PHP 4 >= 4.0.7, PHP 5, PHP 7)
array_key_exists — 檢查數(shù)組里是否有指定的鍵名或索引
- 說明
bool array_key_exists ( mixed $key , array $array )
數(shù)組里有鍵 key 時,array_key_exists() 返回 TRUE。 key 可以是任何能作為數(shù)組索引的值。 - 參數(shù)
key:要檢查的鍵。
array:一個數(shù)組,包含待檢查的鍵。 - 返回值
成功時返回 TRUE, 或者在失敗時返回 FALSE。 - Note:
array_key_exists() 僅僅搜索第一維的鍵。 多維數(shù)組里嵌套的鍵不會被搜索到。 - 范例
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
11、array_keys
(PHP 4, PHP 5, PHP 7)
array_keys — 返回數(shù)組中部分的或所有的鍵名
- 說明
array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )
array_keys() 返回 input 數(shù)組中的數(shù)字或者字符串的鍵名。
如果指定了可選參數(shù) search_value,則只返回該值的鍵名。否則 input 數(shù)組中的所有鍵名都會被返回。 - 參數(shù)
input:一個數(shù)組,包含了要返回的鍵。
search_value:如果指定了這個參數(shù),只有包含這些值的鍵才會返回。
strict:判斷在搜索的時候是否該使用嚴(yán)格的比較(===)。 - 返回值
返回 input 里的所有鍵。 - 范例
<?php
$array = [0 => 100, "color" => "red"];
print_r(array_keys($array));
$array = ["blue", "red", "green", "blue", "blue"];
print_r(array_keys($array, "blue"));
$array = [
"color" => ["blue", "red", "green"],
"size" => ["small", "medium", "large"]
];
print_r(array_keys($array));
?>
以上例程會輸出:
Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)
12、array_map
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_map — 為數(shù)組的每個元素應(yīng)用回調(diào)函數(shù)
- 說明
array array_map ( callable $callback , array $array1 [, array $... ] )
array_map():返回數(shù)組,是為 array1 每個元素應(yīng)用 callback函數(shù)之后的數(shù)組。 callback 函數(shù)形參的數(shù)量和傳給 array_map() 數(shù)組數(shù)量,兩者必須一樣。 - 參數(shù)
callback:回調(diào)函數(shù),應(yīng)用到每個數(shù)組里的每個元素。
array1:數(shù)組,遍歷運行 callback 函數(shù)。
...:數(shù)組列表,每個都遍歷運行 callback 函數(shù)。 - 返回值
返回數(shù)組,包含 callback 函數(shù)處理之后 array1 的所有元素。 - 范例
<?php
function cube($n) {
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
這使得 $b 成為:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
13、array_merge
(PHP 4, PHP 5, PHP 7)
array_merge — 合并一個或多個數(shù)組
- 說明
array array_merge ( array $array1 [, array $... ] )
array_merge() 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。 - 參數(shù)
array1:要合并的第一個數(shù)組。
...:要合并的數(shù)組列表。 - 返回值
返回結(jié)果數(shù)組。 - 范例
<?php
$array1 = ["color" => "red", 2, 4];
$array2 = ["a", "b", "color" => "green", "shape" => "trapezoid", 4];
$result = array_merge($array1, $array2);
print_r($result);
?>
以上例程會輸出:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
14、array_merge_recursive
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
array_merge_recursive — 遞歸地合并一個或多個數(shù)組
- 說明
array array_merge_recursive ( array $array1 [, array $... ] )
array_merge_recursive() 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則這些值會被合并到一個數(shù)組中去,這將遞歸下去,因此如果一個值本身是一個數(shù)組,本函數(shù)將按照相應(yīng)的條目把它合并為另一個數(shù)組。然而,如果數(shù)組具有相同的數(shù)組鍵名,后一個值將不會覆蓋原來的值,而是附加到后面。 - 參數(shù)
array1:要合并的初始數(shù)組。
...:數(shù)組變量列表,進(jìn)行遞歸合并。 - 返回值
一個結(jié)果數(shù)組,其中的值合并自附加的參數(shù)。 - 范例
<?php
$array1 = ['color' => ['favorite'=>'red'], 5];
$array2 = ['a','color' => ['favorite'=>'green','blue']];
$result = array_merge_recursive($array1, $array2);
print_r($result);
?>
以上例程會輸出:
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => a
)
15、array_multisort
(PHP 4, PHP 5, PHP 7)
array_multisort — 對多個數(shù)組或多維數(shù)組進(jìn)行排序
- 說明
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
array_multisort() 可以用來一次對多個數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對多維數(shù)組進(jìn)行排序。
關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會被重新索引。
Note:
If two members compare as equal, their relative order in the sorted array is undefined.
如果兩個成員相等,它們在排序數(shù)組中的相對順序是未定義的。 - 參數(shù)
array1:要排序的 array。
array1_sort_order:之前 array 參數(shù)要排列的順序。 SORT_ASC 按照上升順序排序, SORT_DESC 按照下降順序排序。
此參數(shù)可以和 array1_sort_flags 互換,也可以完全刪除,默認(rèn)是 SORT_ASC 。
array1_sort_flags:為 array 參數(shù)設(shè)定選項:
排序類型標(biāo)志:
ORT_REGULAR - 將項目按照通常方法比較(不修改類型)
ORT_NUMERIC - 按照數(shù)字大小比較
ORT_STRING - 按照字符串比較
ORT_LOCALE_STRING - 根據(jù)當(dāng)前的本地化設(shè)置,按照字符串比較。 它會使用 locale 信息,可以通過 setlocale() 修改此信息。
ORT_NATURAL - 以字符串的"自然排序",類似 natsort()
ORT_FLAG_CASE - 可以組合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小寫不敏感的方式排序字符串。
參數(shù)可以和 array1_sort_order 交換或者省略,默認(rèn)情況下是 SORT_REGULAR。
...
可選的選項,可提供更多數(shù)組,跟隨在 sort order 和 sort flag 之后。 提供的數(shù)組和之前的數(shù)組要有相同數(shù)量的元素。 換言之,排序是按字典順序排列的。 - 返回值
成功時返回 TRUE, 或者在失敗時返回 FALSE - 更新日志
| 版本 | 說明 |
|---|---|
| 5.4.0 | array1_sort_flags 增加 SORT_NATURAL 和 SORT_FLAG_CASE 選項 |
| 5.3.0 | array1_sort_flags 增加選項 SORT_LOCALE_STRING |
- 范例
<?php
$ar1 = [10, 100, 100, 0];
$ar2 = [1, 3, 2, 4];
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
/**
這個例子里,排序后,第一個數(shù)組會包含 0、 10、 100、 100。
第二個數(shù)組會包含 4、1、 2、 3。
第二個數(shù)組里的項目對應(yīng)第一個數(shù)組后也進(jìn)行了排序(100 和 100)
array(4) {
[0]=> int(0)
[1]=> int(10)
[2]=> int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(4)
[1]=> int(1)
[2]=> int(2)
[3]=> int(3)
}
*/
?>
16、array_pad
(PHP 4, PHP 5, PHP 7)
array_pad — 以指定長度將一個值填充進(jìn)數(shù)組
- 說明
array array_pad ( array $array , int $size , mixed $value )
array_pad() 返回 array 的一個拷貝,并用 value 將其填補(bǔ)到 size 指定的長度。如果 size 為正,則填補(bǔ)到數(shù)組的右側(cè),如果為負(fù)則從左側(cè)開始填補(bǔ)。如果 size 的絕對值小于或等于 array 數(shù)組的長度則沒有任何填補(bǔ)。有可能一次最多填補(bǔ) 1048576 個單元。 - 參數(shù)
array:需要被填充的原始數(shù)組。
size:新數(shù)組的長度。
value:將被填充的值,只有在 array 的現(xiàn)有長度小于 size 的長度時才有效。 - 返回值
返回 array 用 value 填充到 size 指定的長度之后的一個副本。 如果 size 為正,則填補(bǔ)到數(shù)組的右側(cè),如果為負(fù)則從左側(cè)開始填補(bǔ)。 如果 size 的絕對值小于或等于 array 數(shù)組的長度則沒有任何填補(bǔ)。 - 范例
<?php
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// not padded
?>
17、array_pop
(PHP 4, PHP 5, PHP 7)
array_pop — 彈出數(shù)組最后一個單元(出棧)
- 說明
mixed array_pop ( array &$array )
array_pop() 彈出并返回 array 數(shù)組的最后一個單元,并將數(shù)組 array 的長度減一。
Note: 使用此函數(shù)后會重置(reset())array 指針。 - 參數(shù)
array:需要做出棧的數(shù)組。 - 返回值
返回 array 的最后一個值。如果 array 是空(如果不是一個數(shù)組),將會返回 NULL 。 - 錯誤/異常
調(diào)用此函數(shù)去處理非數(shù)組的值,會產(chǎn)生 E_WARNING 級別的錯誤。 - 范例
<?php
$stack = ['orange', 'banana', 'apple', 'raspberry'];
$fruit = array_pop($stack);
print_r($stack);
/**
* Array
* (
* [0] => orange
* [1] => banana
* [2] => apple
* )
*/
?>
18、array_product
(PHP 5 >= 5.1.0, PHP 7)
array_product — 計算數(shù)組中所有值的乘積
- 說明
number array_product ( array $array )
array_product() 以整數(shù)或浮點數(shù)返回一個數(shù)組中所有值的乘積。 - 參數(shù)
array:這個數(shù)組。 - 返回值
以整數(shù)或浮點數(shù)返回一個數(shù)組中所有值的乘積。 - 更新日志
5.3.6 ?空數(shù)組現(xiàn)在會產(chǎn)生 1,而之前此函數(shù)處理空數(shù)組會產(chǎn)生 0。 - 范例
<?php
$a = [2, 4, 6, 8];
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";
/**
* product(a) = 384
* product(array()) = 1
*/
?>
19、array_push
(PHP 4, PHP 5, PHP 7)
array_push — 將一個或多個單元壓入數(shù)組的末尾(入棧)
- 說明
int array_push ( array &$array , mixed $value1 [, mixed $... ] )
array_push() 將 array 當(dāng)成一個棧,并將傳入的變量壓入 array 的末尾。array 的長度將根據(jù)入棧變量的數(shù)目增加。和如下效果相同:
<?php
$array[] = $var;
?>
并對每個傳入的值重復(fù)以上動作。
Note: 如果用 array_push() 來給數(shù)組增加一個單元,還不如用 $array[] = ,因為這樣沒有調(diào)用函數(shù)的額外負(fù)擔(dān)。
Note: 如果第一個參數(shù)不是數(shù)組,array_push() 將發(fā)出一條警告。這和 $var[] 的行為不同,后者會新建一個數(shù)組。
- 參數(shù)
array:輸入的數(shù)組。
value1:要壓入 array 末尾的第一個值。 - 返回值
返回處理之后數(shù)組的元素個數(shù)。 - 范例
<?php
$stack = ['orange', 'banana'];
array_push($stack, 'apple', 'raspberry');
print_r($stack);
/************************
*
* Array
* (
* [0] => orange
* [1] => banana
* [2] => apple
* [3] => raspberry
* )
*
***************************/
?>
20、array_rand
(PHP 4, PHP 5, PHP 7)
array_rand — 從數(shù)組中隨機(jī)取出一個或多個單元
- 說明
mixed array_rand ( array $array [, int $num = 1 ] )
從數(shù)組中取出一個或多個隨機(jī)的單元,并返回隨機(jī)條目的一個或多個鍵。 它使用了偽隨機(jī)數(shù)產(chǎn)生算法,所以不適合密碼學(xué)場景, - 參數(shù)
array:輸入的數(shù)組。
num:指明了你想取出多少個單元。 - 返回值
如果只取出一個,array_rand() 返回隨機(jī)單元的鍵名。 否則就返回包含隨機(jī)鍵名的數(shù)組。 完成后,就可以根據(jù)隨機(jī)的鍵獲取數(shù)組的隨機(jī)值。 取出數(shù)量如果超過 array 的長度,就會導(dǎo)致 E_WARNING 錯誤,并返回 NULL。 - 更新日志
| 版本 | 說明 |
|---|---|
| 7.1.0 | 內(nèi)置的隨機(jī)數(shù)生成算法從 libc rand 函數(shù)改成 梅森旋轉(zhuǎn) 偽隨機(jī)數(shù)生成算法。 |
| 5.2.10 | The resulting array of keys is no longer shuffled. |
- 范例