array_chunk
array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )
将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
![]()
![]()
测试:
![]()
array_slice
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
从数组中取出一段 | 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列
array_chunk的反向操作,参看文档
--
array_column
array array_column ( array $input, mixed $column_key [, mixed $index_key ])
array_combine
//> 返回的数组类型:索引数组 | 混合数组 | 关联数组
array array_combine ( array $keys, array $values)
创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values
array array_count_values ( array $input )
一个数组,该数组用 input 数组中的值作为键名,该值在 input 数组中出现的次数作为值
$input 需要的是一个索引数组
测试:
![]()
可见:array_count_values在处理数组时,判断的是值,不管该数组是什么类型的数组( 关联数组 | 索引数组 | 混合数组 )
--
array_fill
array_fill (int $start_index, int $num, mixed $value)
用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始
具体用法,查看文档,填充的数据比较固定。
![]()
我们知道$value可以是一个混合类型的值,这里测试的是数组,被当作整体插入;那么对象应该也是会被当作整体。
array_fill_keys
array array_fill_keys( array $keys, mixed $value )
使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组
使用该函数,我们可以指定自己的键生成指定的数组
--
array_filter
array array_filter ( array $array [,callback [,int $falg = 0]] )
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
![]()
可见:array_filter默认第三个参数是0,表示callback获取的参数只是需要过滤参数的值,如果第三个参数该为1,可以获取 键 和 值
array_flip
array array_flip( array $trans )
交换数组中的键和值
--
shuffle()
bool shuffle ( array &$array)
将数组打乱(这的数组,采用的是引用赋值)
![]()
shuffle 函数,对关联数组好像一律当作索引数组处理,处理后的原来的键不会存在
array_rand
mixed array_rand ( array $input [, $num_req = 1] )
从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个 键
array_reduce
/* 示例1 */
function rsum($v, $w){
var_dump( $v );
var_dump( $w );
$v += $w;
return $v;
}
$a = array(1, 2, 3, 4, 5);
$b = array_reduce($a, "rsum");
var_dump( $b );
/* 打印结果 */
/*
NULL
int(1)
int(1)
int(2)
int(3)
int(3)
int(6)
int(4)
int(10)
int(5)
int(15)
*/
//> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/* 示例2 */
function rsum($v, $w){
var_dump( $v );
var_dump( $w );
$v += $w;
return $v;
}
$a = array(1, 2, 3, 4, 5);
$b = array_reduce($a, "rsum",10);
var_dump( $b );
/* 打印结果 */
/*
int(10)
int(1)
int(11)
int(2)
int(13)
int(3)
int(16)
int(4)
int(20)
int(5)
int(25)
*/
网友评论