(1)array_key_exists
含义:检查给定的键名或索引是否存在于数组中
说明:
bool array_key_exists(mixed $key, array $search)
在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。
key:要检查的键名。
search:数组,可能包含待检查的键。
返回值:成功时返回 TRUE ,失败时返回 FALSE。
(2)array_keys
含义:返回数组中所有的键名
说明:
array array_keys(array $input[, mixed $search_value = NULL[,bool $strict = false]])
如果指定了可选参数search_value,则只返回该值的键名。否则将返回 input 数组中的所有键名。
input:一个数组,包含了要返回的键。
search_value:如果指定了这个参数,只有包含这些值的键才会返回。
strict:判断在搜索的时候是否使用严格的比较(===)。
返回值:返回 input 数组中的数字或者字符串的键名。
例子:
<?php
$array = array( 0 => 100 , "color" => "red" );
print_r ( array_keys ( $array ));
$array = array( "blue" , "red" , "green" , "blue" , "blue" );
print_r ( array_keys ( $array , "blue" ));
$array = array( "color" => array( "blue" , "red" , "green" ),
"size" => array( "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
)
(3)array_values
含义:返回数组中所有的值
说明:
array array_values(array $input)
input:一个数组。
返回值:返回 input 数组中所有的值并给其建立数字索引。
(4)array_merge
含义:合并一个或多个数组
说明:
array array_merge(array $array1[, array $...])
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
例子:
<?php
$array1 = array( "color" => "red" , 2 , 4 );
$array2 = array( "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
)
(5)array_rand
含义:从数组中随机取出一个或多个单元
说明:
mixed array_rand(array $input[,int $num_req=1])
从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。
input:一个数组。
num_req:指明了你想取出多少个单元。如果指定的数目超过了数组里的数量将会产生一个 E_WARNING 级别的错误。
返回值:如果你只取出一个,array_rand() 返回一个随机的单元键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
(6)array_splice
含义:把数组中的一部分去掉并用其他值取代
说明:
mixed array_splice(array &$input,int $offset[,int $length=0[, mixed $replacement]])
把 input 数组中由 offset 和 length指定的单元去掉,如果提供了replacement参数,则用其中的单元取代。注意input中的数字键名不被保留。
input:输入的数组。
offset:如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。
length:如果省略 length,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length。
replacement:如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。 如果 offset 和 length 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。注意替换数组中的键名不保留。 如果用来替换 replacement 只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL 。
(7)shuffle
含义:将数组打乱
说明:
bool shuffle ( array &$array )
该函数打乱一个数组(即:随机排列单元的顺序)
返回值:成功时返回 TRUE ,失败时返回 FALSE。
(8)array_filter
含义:过滤(空)数组
说明:
array array_filter ( array $input [, callable $callback = "" ] )
依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE ,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
例子:
<?php
$entry = array(
0 => 'foo' ,
1 => false ,
2 => - 1 ,
3 => null ,
4 => ''
);
print_r ( array_filter ( $entry ));
?>
以上例程会输出:
Array
(
[0] => foo
[2] => -1
)
(9)array_column
含义:返回数组中指定的一列
说明:
array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
例子:
<?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' ,
)
);
$last_names = array_column ( $records , 'last_name' , 'id' );
print_r ( $last_names );
?>
以上例程会输出:
Array
(
[2135] => Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)
(10)array_multisort
含义:对多个数组或多维数组进行排序
说明:
bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $... ]]] )
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联( string )键名保持不变,但数字键名会被重新索引。
排序顺序标志:
1.SORT_ASC - 按照上升顺序排序
2.SORT_DESC - 按照下降顺序排序
排序类型标志:
1.SORT_REGULAR - 将项目按照通常方法比较
2.SORT_NUMERIC - 将项目按照数值比较
3.SORT_STRING - 将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR 。
输入数组被当成一个表的列并以行来排序——这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
成功时返回 TRUE , 或者在失败时返回 FALSE 。
例子:
<?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' ,
)
);
$last_names = array_column ( $records , 'last_name' , 'id' );
print_r ( $last_names );
?>
以上例程会输出:
Array
(
[2135] => Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)