PHP 第一周函数学习记录
array_change_key_case()
作用
函数将数组的所有的键都转换为大写字母或小写字母
用法
array_change_key_case(array,case)
测试案例
$testArr = array('a'=>1, 'B'=>2);
// CASE_UPPER 键转大写
print_r(array_change_key_case($testArr,CASE_UPPER));
// CASE_LOWER 键转小写 默认值
print_r(array_change_key_case($testArr,CASE_LOWER));
结果
Array
(
[A] => 1
[B] => 2
)
Array
(
[a] => 1
[b] => 2
)
array_chunk()
作用
函数把一个数组分割为新的数组块。
用法
array_chunk(array,size,preserve_keys)
size 规定每个新数组块包含多少个元素。
preserve_keys true - 保留原始数组中的键名。
false - 默认。每个新数组块使用从零开始的索引。
测试案例
$testArr = array('a'=>'hhhh', 'B'=>'yyyyy');
// 按每块1个元素分块 保留键
print_r(array_chunk($testArr,1, true));
// 按每块1个元素分块 不保留键
print_r(array_chunk($testArr,1, false));
结果
Array
(
[0] => Array
(
[a] => hhhh
)
[1] => Array
(
[B] => yyyyy
)
)
Array
(
[0] => Array
(
[0] => hhhh
)
[1] => Array
(
[0] => yyyyy
)
)
array_column()
作用
返回输入数组中某个单一列的值
用法
array_column(array, column_key, index_key);
column_key 需要返回值的列
index_key 返回数组的索引/键的列
测试案例
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
结果
Array
(
[5698] => Griffin
[4767] => Smith
[3809] => Doe
)
array_combine()
作用
函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值
用法
array_combine(keys,values);
测试案例
$fname = array("Peter", "Ben", "Joe");
$age = array("35", "37", "43");
$c = array_combine($fname, $age);
print_r($c);
结果
Array (
[Peter] => 35
[Ben] => 37
[Joe] => 43
)
array_count_values()
作用
函数用于统计数组中所有值出现的次数。
用法
array_count_values(array)
测试案例
$a = array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
结果
Array (
[A] => 2
[Cat] => 1
[Dog] => 2
)
array_diff()
作用
函数用于比较两个(或更多个)数组的值,并返回差集
用法
array_diff(array1,array2,array3...);
测试案例
$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");
$result=array_diff($a1,$a2,$a3);
print_r($result);
结果
Array (
[b] => green
[c] => blue
)
array_diff_assoc()
作用
array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。
用法
array_diff_assoc(array1,array2,array3...);
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"green","g"=>"blue");
$a3=array("h"=>"red","b"=>"green","g"=>"blue");
$result=array_diff_assoc($a1,$a2,$a3);
print_r($result);
结果
Array (
[c] => blue
[d] => yellow
)
array_diff_key()
作用
函数用于比较两个(或更多个)数组的键名 ,并返回差集
用法
array_diff_key(array1,array2,array3...);
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","c"=>"blue","d"=>"pink");
$result=array_diff_key($a1,$a2);
print_r($result);
结果
Array ( [b] => green )
array_diff_uassoc()
作用
比较两个数组的键名和键值(使用用户自定义函数比较键名),并返回差集
用法
array_diff_uassoc(array1,array2,array3...,myfunction);
测试案例
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [a] => red [c] => blue )
array_diff_ukey()
作用
比较两个数组的键名(使用用户自定义函数比较键名),并返回差集
用法
array_diff_ukey(array1,array2,array3...,myfunction);
测试案例
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_diff_ukey($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [c] => blue )
array_fill()
作用
用给定的键值填充数组
用法
array_fill(index,number,value);
index 数组的起始索引
number 规定填充的元素的数量,其值必须大于 0
value 规定用于填充数组的键值
测试案例
$a1=array_fill(3,4,"blue");
$b1=array_fill(0,1,"red");
print_r($a1);
echo "<br>";
print_r($b1);
结果
Array (
[3] => blue
[4] => blue
[5] => blue
[6] => blue
)
Array (
[0] => red
)
array_fill_keys()
作用
给定的指定键名的键值填充数组
用法
array_fill_keys(keys,value);
测试案例
$keys=array("a","b","c","d");
$a1=array_fill_keys($keys,"blue");
print_r($a1);
结果
Array (
[a] => blue
[b] => blue
[c] => blue
[d] => blue
)
array_filter()
作用
用回调函数过滤数组中的元素
用法
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
测试案例
function test_odd($var)
{
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
结果
Array (
[3] => 3
)
array_flip()
作用
用于反转/交换数组中的键名和对应关联的键值
用法
array_flip(array);
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result);
结果
Array (
[red] => a
[green] => b
[blue] => c
[yellow] => d
)
array_intersect()
作用
取数组中所有值的交集
用法
array_intersect(array1,array2,array3...);
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2);
print_r($result);
结果
Array (
[a] => red
[b] => green
[c] => blue
)
array_intersect_assoc()
作用
用于比较两个(或更多个)数组的键名和键值,并返回交集
用法
array_intersect_assoc(array1,array2,array3...)
测试案例
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_intersect_assoc($a1,$a2);
print_r($result);
结果
Array (
[a] => red
[b] => green
[c] => blue
)
array_intersect_key()
作用
用于比较两个(或更多个)数组的键名 ,并返回交集
用法
array_intersect_key(array1,array2,array3...)
测试案例
$a1=array("red","green","blue","yellow");
$a2=array("red","green","blue");
$result=array_intersect_key($a1,$a2);
print_r($result);
结果
Array (
[0] => red
[1] => green
[2] => blue
)
array_intersect_uassoc()
作用
用于比较两个(或更多个)数组的键名和键值 ,并返回交集。
注释:该函数使用用户自定义函数比较键名!
用法
array_intersect_uassoc(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result=array_intersect_uassoc($a1,$a2,"myfunction");
print_r($result);
结果
Array ( [b] => green )
array_intersect_ukey()
作用
用于比较两个(或更多个)数组的键名 ,并返回交集。 使用用户自定义函数比较键名
用法
array_intersect_ukey(array1,array2,array3...,myfunction)
测试案例
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"black","b"=>"yellow","d"=>"brown");
$a3=array("e"=>"purple","f"=>"white","a"=>"gold");
$result=array_intersect_ukey($a1,$a2,$a3,"myfunction");
print_r($result);
结果
Array ( [a] => red )
array_key_exists()
作用
函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
用法
array_key_exists(key,array)
测试案例
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Toyota",$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
结果
Key does not exist!
array_keys()
作用
函数返回包含数组中所有键名的一个新数组。
用法
array_keys(array,value,strict)
测试案例
$a=array(10,20,30,"10");
print_r(array_keys($a,"10",true));
结果
Array ( [0] => 3 )
array_map()
作用
函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组
用法
array_map(myfunction,array1,array2,array3...)
测试案例
function myfunction($v)
{
return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
结果
Array (
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)
array_merge()
作用
用于把一个或多个数组合并为一个数组
用法
array_merge(array1,array2,array3...)
测试案例
$a=array(3=>"red",4=>"green");
print_r(array_merge($a));
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
结果
Array (
[0] => red
[1] => green
)
Array
(
[a] => red
[b] => yellow
[c] => blue
)
array_merge_recursive()
作用
把一个或多个数组合并为一个数组。多个相同键名的值递归组成一个数组
用法
array_merge_recursive(array1,array2,array3...)
测试案例
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));
结果
Array (
[a] => red
[b] => Array (
[0] => green
[1] => yellow
)
[c] => blue
)
array_multisort()
作用
返回一个排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。
用法
array_multisort(array1,sorting order,sorting type,array2,array3...)
sorting order SORT_ASC - 默认。按升序排列 (A-Z)
SORT_DESC - 按降序排列 (Z-A)。
sorting type SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
SORT_NUMERIC - 把每一项作为数字来处理。
SORT_STRING - 把每一项作为字符串来处理。
SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
测试案例
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2,SORT_ASC,SORT_NATURAL);
print_r($a1);
print_r($a2);
结果
Array
(
[0] => Dog
[1] => Cat
)
Array
(
[0] => Fido
[1] => Missy
)
参考
本作品采用《CC 协议》,转载必须注明作者和本文链接
:+1:不错