1.compact函数
建立一个数组,包括变量名和它们的值
示例
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", $location_vars);
print_r($result);
?>
以上例程会输出:
Array
(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)
2.array_change_key_case()函数
函数将数组的所有的键都转换为大写字母或小写字母
注意:
返回值: 返回带有小写字母的键的数组,或者返回带有大写字母的键的数组,或者如果 array 不是一个数组则返回 FALSE。
示例1:
<?php
$pets=array("a"=>"Cat","B"=>"Dog","c"=>"Horse","b"=>"Bird");
print_r(array_change_key_case($pets,CASE_UPPER));
?>
结果:
Array
(
[A] => Cat
[B] => Bird
[C] => Horse
)
3.array_chunk()函数
函数把一个数组分割为新的数组块
示例1:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43","Harry"=>"50");
print_r(array_chunk($age,2,true));
?>
结果:
Array
(
[0] => Array
(
[Peter] => 35
[Ben] => 37
)
[1] => Array
(
[Joe] => 43
[Harry] => 50
)
)
4.array_column()函数
返回输入数组中某个单一列的值
注意:
返回一个数组,数组的值为输入数组中某个单一列的值。PHP 版本: 5.5+
实例:
<?php
// 可能从数据库中返回数组
$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
)
5.array_combine() 函数
函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。
注释:键名数组和键值数组的元素个数必须相同!
示例:
<?php
$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 )
6.array_count_values() 函数
用于统计数组中所有值出现的次数。
说明: array_count_values() 返回一个数组: 数组的键是 array 里单元的值; 数组的值是 array 单元的值出现的次数。
array_count_values ( array $array ) : array
示例:
<?php
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
?>
结果:
Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
7.array_diff_assoc
带索引检查计算数组的差集
说明: array_diff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。
array_diff_assoc ( array $array1 , array $array2 , array $... = ? ) : array
示例:
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
结果:
Array
(
[b] => brown
[c] => blue
[0] => red
)
示例2:
<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
结果2:
Array
(
[0] => 0
[1] => 1
)
8.array_diff_key
使用键名比较计算数组的差集
说明: 根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。
array_diff_key ( array $array1 , array $array2 , array $... = ? ) : array
示例 #1
<?php
$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));
?>
结果1:
array(2) {
["red"]=>
int(2)
["purple"]=>
int(4)
}
9.array_diff_uassoc
用用户提供的回调函数做索引检查来计算数组的差集
说明: 对比了 array1 和 array2 并返回不同之处。 注意和 array_diff() 不同的是键名也用于比较。
和 array_diff_assoc() 不同的是使用了用户自定义的回调函数,而不是内置的函数。
array_diff_uassoc ( array $array1 , array $array2 , array $... = ? , callable $key_compare_func ) : array
示例 #1
<?php
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);
?>
结果:
Array
(
[b] => brown
[c] => blue
[0] => red
)
10.array_diff_ukey
用回调函数对键名比较计算数组的差集
说明: array_diff_ukey() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
array_diff_ukey ( array $array1 , array $array2 , array $... = ? , callable $key_compare_func ) : array
示例 #1 array_diff_ukey() 例子
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>
以上例程会输出:
array(2) {
["red"]=>
int(2)
["purple"]=>
int(4)
}
11.array_diff
计算数组的差集
说明: 对比 array 和其他一个或者多个数组,返回在 array 中但是不在其他 array 里的值。
array_diff ( array $array , array ...$arrays ) : array
示例 #1 array_diff() 例子
<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>
输出结果为:
Array
(
[1] => blue
)
12.array_fill_keys
使用指定的键和值填充数组
说明: 使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。
array_fill_keys ( array $keys , mixed $value ) : array
示例 #1 array_fill_keys() 范例
<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>
以上例程会输出:
Array
(
[foo] => banana
[5] => banana
[10] => banana
[bar] => banana
)
13.array_fill
用给定的值填充数组
说明: 用 value 参数的值填充 count 个元素到数组, 开始键名由 start_index 参数指定。
array_fill ( int $start_index , int $count , mixed $value ) : array
示例 #1 array_fill() 例子
<?php
$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
)