PHP之数组

1、array_change_key_case() 函数、

  用法:将数组的所有键转成大写或者小写。

  语法: array_change_key_case(array, case);

  参数:array:必需,要转换的数组;

     case:可选,CASE_LOWER - 默认值。将数组的键转换为小写字母。CASE_UPPER - 将数组的键转换为大写字母。

$arr = array('Name' => 'xiaoming', 'Age' => 23, 'sex' => 'boy');
print_r(array_change_key_case($arr)); //转小写
print_r(array_change_key_case($arr, CASE_UPPER)); //转大

2、array_chunk() 函数

  用法:把数组分割成新的数组快

  语法:array_chunk(array, size, key);

  参数:array: 必需,要分割的数组

     size:必需,分割后每个数组包含多少个元素,整数

     key:可选,true 保留原来的键名,false 默认,每个新数组使用从零开始的索引。

$arr = array('Name' => 'xiaoming', 'Age' => 23, 'sex' => 'boy');
print_r(array_chunk($arr, 2, true)); //保留键名
print_r(array_chunk($arr, 2, false)); //默认

3、array_column函数

  用法:返回数组中某个单一列的值

  语法:array_column(array, key, index);

  参数:array: 必需, 多维数组

     key:必需,需要返回的列

     index: 可选, 作为返回数组的键

1 $arr = array(
2     array('id' => 1, 'first_name' => 'Peter', 'last_name' => 'Griffin',),
3     array('id' => 2, 'first_name' => 'Ben', 'last_name' => 'Smith',),
4     array('id' => 3, 'first_name' => 'Joe', 'last_name' => 'Doe',)
5 );
6 print_r(array_column($arr, 'last_name'));
7 print_r(array_column($arr, 'last_name', 'id'));

4、array_combine() 函数

  用法:合并两个数组为新数组,其中一个数组元素为键值,另一个为元素

  语法:array_combine(keys, values);(两数组的长度必需一致)

  参数:keys: 必需,新数组的键名

     values:必需,新数组的元素

$arr1 = array('red', 'green', 'blue');
$arr2 = array('红', '绿', '蓝');
print_r(array_combine($arr1, $arr2));

5、array_count_values() 函数

  用法:统计数组中所有值出现的次数

  语法:array_count_values(array);

  参数:array: 必需,需要统计的数组

$arr = array('red', 'green', 'blue', 'green');
print_r(array_count_values($arr));

6、array_diff() 函数

  用法:比较两个或多个数组的键值,返回差集

  语法:array_diff(array1, array2, array3...);

  参数:array1: 必需,做比较的第一个数组

     array2: 必需,与array1比较的数组

     array3:可选,与array1比较的其他数组

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

print_r(array_diff($a1, $a2));
print_r(array_diff($a1, $a2, $a3));

7、array_diff_assoc() 函数

  用法:用法跟array_diff()一样,较两个或多个数组的键名和键值,返回差集

  语法:array_diff_assoc(array1, array2, array3...);

  参数:array1: 必需,做比较的第一个数组

     array2: 必需,与array1比较的数组

     array3:可选,与array1比较的其他数组

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("c"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

print_r(array_diff_assoc($a1, $a2));
print_r(array_diff_assoc($a1, $a2, $a3));

8、array_diff_key() 函数

  用法,语法,参数跟array_diff() 一样,区别在于比较键名

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("c"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

print_r(array_diff_key($a1, $a2));
print_r(array_diff_key($a1, $a2, $a3));

9、array_diff_uassoc() 函数

  用法:用于比较两个(或更多个)数组的键名和键值 ,并返回差集, 该函数使用自定义函数比较

  语法:array_diff_uassoc(array1, array2, array3...,function);

  参数:array1: 必需,做比较的第一个数组

     array2: 必需,与array1比较的数组

     array3:可选,与array1比较的其他数组

     function: 必需,一个定义了可调用比较函数的字符串。如果第一个参数 <, =, > 第二个参数,相应地比较函数必须返回一个 <, =, > 0 的整数。

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("c"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

print_r(array_diff_uassoc($a1, $a2, 'compare'));
print_r(array_diff_uassoc($a1, $a2, $a3, 'compare'));

function compare($a, $b){
    if ($a == $b) {
        return 0;
    }
    return $a > $b ? 1 : -1;
}

10、array_diff_ukey() 函数

  用法:用于比较两个(或更多个)数组的键名 ,并返回差集。

  语法,参数跟array_diff_uassoc一致

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("c"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");

print_r(array_diff_ukey($a1, $a2, 'compare'));
print_r(array_diff_ukey($a1, $a2, $a3, 'compare'));

function compare($a, $b){
    if ($a == $b) {
        return 0;
    }
    return $a > $b ? 1 : -1;
}

11、array_fill() 函数

  用法:用给定的键值填充数组

  语法:array_fill(index, number, value);

  参数:index: 必需,数组的起始索引

     number:必需,填充元素的个数,大于0

     value:必需,填充元素的键值

$arr = array_fill(5, 2, '红');
print_r($arr);

12、array_fill_keys() 函数

  用法:用给定的指定的键名的键值填充数组

  语法:array_fill_keys(keys, value);

  参数:keys:必需,数组,被填充数组的键名

     value: 必需,填充数组的键值

$keys = array('a', 'b', 'c', 1);
print_r(array_fill_keys($keys, 'red'));

13、array_filter() 函数

  用法:使用回调函数过滤数组中的元素

  语法:array_filter(array, function);

  参数:array: 必需,要过滤的数组

     function: 必需,要调用的函数

$arr = array('a', 'b', 'c', 1);
print_r(array_filter($arr, 'callBack'));

function callBack($var){
    if ($var !== 1) {
        return $var;
    }
}

14、array_flip() 函数

  用法:用于反转或交换数组中的键名和对应关联的键值

  语法:array_flip(array);

  参数:array:必需,需要反转或交换的数组

$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
print_r(array_flip($arr));

15、array_intersect() 函数、array_intersect_assoc() 函数array_intersect_key() 函数array_intersect_uassoc() 函数array_intersect_ukey() 函数

  该5个函数的用法与array_diff() 函数array_diff_assoc() 函数array_diff_key() 函数array_diff_uassoc() 函数 array_diff_ukey() 函数类似,区别在于返回的是两个数组的交集

16、array_key_exists() 函数

  用法:判断数组中是否存在指定的键名

  语法:array_key_exists(key, array);

  参数:key:必需,指定的键名

     array:必需,用于判断的数组

$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
echo array_key_exists('c', $arr) ? 'true' : 'false';

17、array_keys() 函数

  用法:返回一个包含有数组键名的新数组

  语法:array_keys(array, value, strict);

  参数:array:必需,数组,

     value:可选,指定键值,只返回指定键值的键名

     strict: 可选,true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。

$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
print_r(array_keys($arr));
print_r(array_keys($arr, 'green'));
print_r(array_keys($arr, 'green', false));

18、array_map() 函数

  用法:将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。

  语法:array_map(function, array1, array2, array3..);

  参数:function:必需,自定义函数名称,或者为null

     array1:必需,规定的数组

     array2: 可选,数组

$arr = array(1, 2, 3, 4, 5);
print_r(array_map('add', $arr));
function add($v){
    return $v + 1;
}

19、array_merge() 函数

  用法:用于将一个或多个数组合并成一个数组

  语法:array_merage(array1, array2, array3...);

  参数:array1:必需,规定数组

     array2,array3:可选,规定数组

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array('a', 'b', 'c');
print_r(array_merge($arr1, $arr2));

20、array_merge_recursive() 函数

  用法:

 

 

 

 

 

posted @ 2017-08-22 18:17  Trimr  阅读(193)  评论(0)    收藏  举报