频道栏目
首页 > 资讯 > 其他 > 正文

php 数组函数学习笔记

16-11-02        来源:[db:作者]  
收藏   我要投稿

1、array_change_key_case 返回字符串键名全为小写或大写的数组

Discription : array array_change_key_case( array $array, [, int $case = CASE_LOWER]) //将数组中的所有键名改为全小写或者大写,由case参数决定

Parameters : array: The array to work on;//需要操作的数组

case: Either CASE_UPPER or CASE_LOWER (default) // 可以用两个常量CASE_UPPER(大写)或者CASE_LOWER(小写)

Return Values : Returns an array with its keys lower or uppercased, or FALSE if array is not an array。//返回一个全大写或者小写的数组,若输入不是数组,则返回FALSE

Errors/Exceptions : Throw E_WANRING if array is not an array。//若输入不是数组,则抛出异常

Examples :

$input_array = array("First" => 1, "SeCond" => 4);

print_r(array_change_key_case($input_array, CASE_UPPER));

// Array([FIRST] => 1, [SECOND] => 4)

Notes : If an array has indices(two or more index) that will be the same once run through this function(e.g."key"and"kEY"), the value that is later in the array will override other indices。//如果一个数组中多个键名指数经过本函数变成一样的话(例如"key"和"kEY"),最后一个值将覆盖其他的值

2、array_chunk 将一个数组分割成多个

Discription : array array_chunk( array $input, int $size [, bool $preserve_key = false]) //将一个数组分割成多个数组,其中每个数组的单元数目由size决定,最后一个数组的单元目可能少于size个

Parameters : input : 需要操作的数组

size : 每个数组的单元数目

preserve_keys : 设为TRUE,可以使其保留输入数组原来的键名。如果指定了FALSE,那每个结果数组将用从零开始的新数字索引。默认值为FALSE

Return values : 得到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了size个元素

Examples :

$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), [4] => Array([0] => e))

3、array_column 返回数组中指定的一列

Discription : array array_column( array $input, mixed $column_key [, mixed $index_key])// 返回input数组键值为column_key的列,如果指定了可选参数index_key,那么input数组中这一列的值将作为返回数组中对应的键

Parameters : input : 需要取出数组的多维数组(或结果集)

column_key :需要返回值的列,可以是索引数组的列索引,或者是关联属族的列的键。也可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)

index_ley : 作为返回数组的索引/键的列,它可以是该列的整数索引,或者是字符串键值

Return values : 从多维数组中返回单列数组

Examples :

$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

)

$last_names = array_column($records, 'last_name', 'id');

print_r($last_names);

//Array(

[2135] => Doe

[3245] => Smith

[5342] => Jones

[5623] => Doe

)

3、array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

Discription : array array_combine( array $keys, array $values) //返回一个数组,来自keys数组的值作为键名,来自values数组的值作为相应的值

Parameters : keys : 将被作为新数组的键,非法的值将会被转换为字符串类型

values : 将被作为新数组的值

Return values : 返回合并的新数组,如果两个数组单元数目不同则返回FALSE

Examples :

$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

)

4、array_cout_values 统计数组中所有的值出现的次数

Discription : array array_cout_values( array $input) // 返回一个数组,该数组用input数组中的值作为键名,该值在input数组中出现的次数为值

Parameters : input : 统计这个数组的值

Return values : 返回一个关联数组,用input数组中的值作为键名,该值在数组中出现的次数作为值

Error/Exceptions : 对数组里面每个不是string和interger类型的元素抛出一个警告错误

Examples :

$array = array(1, "hello", 1, "world", "hello");

print_r(array_count_values($array));

//Array

(

[1] => 2

[hello] => 2

[world] => 1

)

5、array_diff_assoc 带索引检查计算数组的差集

Discription : array array_diff_assoc( array $array1, array $array2 [, array $...]) // 返回一个数组,该数组包括了所有在arrray1但是不在任何其他参数数组中的值。

Parameters : array1 : 要对比的数组 ; array2 : 要对比的数组 ; ......

Return values : 返回一个数组包含所有不在其他数组的array1的元素

Examples :

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");

$array2 = array("a" => "green", "yellow", "red");

$result = array_diff_assoc($array1, $array2);

print_r($result);

//上面的例子中可以看到键值对 "a" => "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1

//Array

(

[b] => brown

[c] => blue

[0] => red

)

Note : 本函数只检查了多维数组中的一维。当然可以用 array_diff_assoc($array1[0], $array2[0]); 检查更深的维度

6、array_diff_key 使用键名比较计算数组的差集

Discription : array array_diff_key( array $array1, array $array2 [, array $...]) //根据array1中的键名和array2进行比较,返回不同键名的项

Parameters : array1 : 从这个数组进行比较 ; array2 : 针对这个数组进行比较; ... : 更多比较数组。。。

Return values : 返回一个数组,该数组包括了所有出现在array1中但是未出现在其他参数数组中的键名的值

Examples :

$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);

$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_key($array1, $array2));

//在 key => value 对中的两个键名仅在 (string) $key1 === (string) $key2 时被认为相等。换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样

//只比较键名的数据及数据类型,不比较对应的值

//array(2) {

["red"]=>

int(2)

["purple"]=>

int(4)

}

Note : 注意本函数只检查了多维数组的一维,当然可以用array_diff_key($array1[0], $array2[0]);来检查更深的维度

7、array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集

Discription : array array_diff_uassoc( array $array1, array $array2 [, array $...], callable $key_compare_func) //对比了array1和array2并返回不同之处

Parameters : array1 : 待比较的数组; array2 : 和这个数组进行比较; ... : 更多比较的数组; key_compare_func : 在第一个参数小于,等于或大于第二个参数是,该函数必须相应的返回一个小于,等于或大于0的整数

Return values : 返回一个array,该数组包含了所有在array1中但是不在其他参数数组中的值

Examples :

function key_compare_func($a, $b)

{

if ($a === $b) {

return 0;

}

return ($a > $b)? 1:-1;

}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");

$array2 = array("a" => "green", "yellow", "red");

$result = array_diff_uassoc($array1, $array2, "key_compare_func");

print_r($result);

//上面的例子中"a" => "green"出现在两个数组中因此不在函数的输出中,但是0 => "red"却在输出中,因为第二个参数中的"red"的键名是1

//Array

(

[b] => brown

[c] => blue

[0] => red

)

Note : 本函数只检查了多维数组中的一维。当然可以用 array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); 检查更深的维度

8、array_diff_ukey 用回调函数对键名比较数组的差集

Discription : array array_diff_ukey( array $array1, array $array2 [, array $...],callable $key_compare_func) //返回一个数组,该数组包括了所有未出现在任何其他参数数组中键名的值

Parameters : array1 : 要比较的数组; array2 : 要比较的数组; ... : 更多要比较的数组; key_compare_func : 在第一个参数小与等于大于第二个参数时,也返回相应返回一个小于等于大于0的整数

Return values : 返回一个array,该数组包含了所有在array1中但是不在其他参数数组中的值

Examples :

$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);

$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_key($array1, $array2));

//在 key => value 对中的两个键名仅在 (string) $key1 === (string) $key2 时被认为相等。换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样

//只比较键名的数据及数据类型,不比较对应的值

//array(2) {

["red"]=>

int(2)

["purple"]=>

int(4)

}

Note : 注意本函数只检查了多维数组的一维,当然可以用array_diff_key($array1[0], $array2[0]);来检查更深的维度

9、array_diff 计算数组的差集

Discription : array array_diff( array $array1, array $array2 [,array $...]) //对比返回在array1中但是不在array2及任何其他参数数组的值

Parameters : array1 : 要对比的数组; array2 : 和这个数组进行比较; ... : 更多相比较的数组

Return values : 返回一个数组,该数组包括了所有在array1但不在任何其他参数数组的值,注意键名保持不变

Examples :

$array1 = array("a" => "green", "red", "blue", "red");

$array2 = array("b" => "green", "yellow", "red");

$result = array_diff($array1, $array2);

print_r($result);

//Array([1] => "blue")

Note : 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候;

本函数只检查了多维数组中的一维。当然可以用 array_diff($array1[0], $array2[0]); 检查更深的维度

10、array_fill_keys 使用指定的键和值填充数组

Discription : array array_fill_keys( array $keys,mixed $value) // 使用value参数的值作为值,使用keys数组的值来填充一个数组

Parameters : keys : 使用该数组的值作为键,非法值将会被转换成字符串; value : 填充使用的值

Return values : 返回填充后的数组

Example :

$keys = array('foo', 5, 10, 'bar');

$a = array_fill_keys($keys, 'banana');

print_r($a);

//Array

(

[foo] => banana

[5] => banana

[10] => banana

[bar] => banana

)

11、array_fill 用给定的值填充数组

Discription : array array_fill( int $start_index, int $num, mixed $value) // 用value参数的值将一个数组填充num个条目,键名由start_index参数指定的开始

Parameters : start_index : 返回数组的第一个索引值, 若此值为负数,则返回值的第一个索引为start_index,后面的索引则从0开始;

num : 插入元素的数量,必须大于0; value : 用来填充的值

Return value : 返回填充后的数组

Error/Exception : 如果num少于一个,则抛出异常

Example :

$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

)

相关TAG标签
上一篇:java程序比赛复习(九)常用类(上)
下一篇:Thinking in Java 第七章------复用类(3)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站