PHP中的数组函数
PHP有74个和数组处理相关的函数,先给出一个总表:
array_change_key_case — 转变数组中所有键值的大小写形式
array_chunk — 将一个数组拆成多个小单元
array_combine — 用一个数组的值作为其键名,另一个数组的值作为其值的方法来创建数组
array_count_values — 统计数组中的值出现的次数
array_diff_assoc — 根据值和键值计算若干个数组相对于第一个数组参数的差集
array_diff_key — 根据键值计算若干个数组相对于第一个数组参数的差集
array_diff_uassoc –根据值和键值计算若干个数组相对于第一个数组参数的差集,可使用回调函数对键值进行比较
array_diff_ukey — 根据键值计算若干个数组相对于第一个数组参数的差集,可使用回调函数比较键名
array_diff — 根据值来计算若干个数组相对于第一个数组参数的差集
array_fill — 用给定的值填充数组
array_filter — 使用回调函数对数组进行过滤操作
array_flip — 交换数组中的键和值
array_intersect_assoc — 根据值和键值来计算数组的交集
array_intersect_key — 根据键值比较计算数组的交集
array_intersect_uassoc — 根据值和键值来计算数组的交集,可使用回调函数对键值进行比较
array_intersect_ukey — 根据键值比较计算数组的交集,可使用回调函数比较键名
array_intersect — 根据值来计算数组的交集
array_key_exists — 检查给定的键名是否存在于数组中
array_keys — 返回数组中所有的键名
array_map — 对数组中的每个元素应用回调函数后返回结果
array_merge_recursive — 用来处理多维数组的合并
array_merge — 重排单个数组的键值或者合并两个数组
array_multisort — 对多个数组进行排序,或者对多维数组进行排序
array_pad — 用值将数组填补到指定长度
array_pop — 将数组的最后一个单元弹出
array_product — 得出数组所有单元值的乘积
array_push — 将一个或多个单元添加到数组的末尾
array_rand — 从数组中随机取出一个或多个单元的键名
array_reduce — 对数组中的每个元素应用一个回调函数
array_reverse — 返回一个和原来数组相反的数组
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift — 将数组的第一个单元移出并作为结果返回
array_slice — 截取出数组中的一段
array_splice — 将一个数组中的部分截取并替换
array_sum — 得出数组所有值的和
array_udiff_assoc — 根据值和键值来计算数组的交集,可使用回调函数比较值
array_udiff_uassoc — 根据值和键值来计算数组的交集,可使用回调函数比较值
array_udiff — 根据值来计算若干个数组相对于第一个数组参数的差集,可使用回调函数比较值
array_uinterse
ct_assoc — 根据值和键值来计算数组的交集,可使用回调函数对值进行比较
array_uintersect_uassoc — 根据值和键值来计算数组的交集,可使用回调函数对值和键值进行比较
array_uintersect — 根据值来计算数组的交集,可使用回调函数比较值
array_unique — 移除数组中重复的值
array_unshift — 将传入的单元插入到数组的开头
array_values — 返回数组中所有的值
array_walk_recursive — 对数组中的每个元素递归的应用一个回调函数
array_walk — 对数组中的每个元素应用一个回调函数
array — 新建一个数组
arsort — 对数组进行反向,保留键值的排序
asort — 对数组进行保留键值的排序
compact — 将变量转变为数组
count — 计算数组的个数
current — 返回数组的当前单元
each — 返回数组当前指针所在单元的键值和值,并将指针指向下一个单元
end — 将指针指向数组的最后一个单元
extract — 将一个数组的键值作为变量名,将数组的值作为变量的值进行批量赋值
in_array — 检查数组中是否存在某个值
key — 返回当前指针所在数组单元的键名
krsort — 将数组按键名进行反向排序
ksort — 将数组按键名进行排序
list — 将数组的值赋给一些变量
natcasesort — 使用“自然排序”法对数组排序,比较时不区分大小写
natsort — 使用“自然排序”法对数组排序
next — 将指针指向数组的下一个单元
pos — 返回数组的当前单元,是current() 的别称
prev — 将指针指向数组的上一个单元
range — 建立一个包含指定范围单元的数组
reset — 将指针指向数组的第一个单元
rsort — 对数组进行反向排序
shuffle — 将数组打乱,并重建键名
sizeof — 计算数组的个数,作用和count()函数完全相同
sort — 对数组进行排序
uasort — 使用回调函数对数组进行保留键值的排序
uksort — 使用回调函数对数组按键名进行排序
usort — 使用回调函数对数组进行排序
array ()函数的作用是创建一个数组。如果省略了索引,会自动产生从 0 开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引 + 1。注意如果定义了两个完全一样的索引,则后面一个会覆盖前一个。array()函数的最后一项后面可以添加一个“,”,但不起任何作用。
<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13,);
print_r($array);
/* 显示
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 13
[4] => 1
[8] => 1
[9] => 19
)
*/
?>
range ()函数的作用是建立一个包含指定范围单元的数组,range()函数的第一个参数表示开始单元的值,第二个参数表示最后一个单元的值,第三个参数表示值的跨度,第三个参数的默认值
为1。第一第二个参数如果输入了字符串,将会截取第一个字母,建立字母为值的数组。
<?php
$number = range(100, 0, 20);
print_r($number);
/* 显示
Array
(
[0] => 100
[1] => 80
[2] => 60
[3] => 40
[4] => 20
[5] => 0
)
*/
$number = range("g", "a", 2);
print_r($number);
/* 显示
Array
(
[0] => g
[1] => e
[2] => c
[3] => a
)
*/
?>
compact()函数可以将变量转变为数组,$key为变量的名称,$value为变量的值。compact()函数的操作可以通过数组递归地完成。
<?phpmerge函数
$name = "Bom";
$result = compact("name");
print_r($result); // 显示 Array ( [name] => Bom )
$name = "Bom";
$age = 25;
$city = "shanghai";
$result = compact(array("name", "age", "city"));
print_r($result);
/* 显示
Array
(
[name] => Bom
[age] => 25
[city] => shanghai
)
*/
?>
extract ()函数的作用是将一个数组的键值作为变量名,将数组的值作为变量的值进行批量赋值,extract()
函数的第二个参数有8个常量参数可以选择:EXTR_OVERWRITE:如果有冲突,覆盖已有的变量;EXTR_SKIP:如果有冲突,不覆盖已有的变量; EXTR_PREFIX_SAME:如果有冲突,在变量名前加上第三个参数作为前缀;EXTR_PREFIX_ALL:给所有变量名前加上第三个参数作为前缀;EXTR_PREFIX_INVALID:仅在非法/数字的变量名前加上第三个参数作为前缀;EXTR_IF_EXISTS:仅在当前已有同名变量时,覆盖它们的值;EXTR_PREFIX_IF_EXISTS:仅在当前已有同名变量时,建立第三个参数作为前缀;EXTR_REFS:将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array 参数的值。可以单独使用这个标志或者在 extract_type 中用 OR 与其它任何标志结合使用。在需要的情况下,会使用第三个参数作为新变量名的前缀。
<?php
$size = "large";
$var_array = array("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");
echo "$color, $size, $shape, $wddx_size";
// 显示 blue, large, sphere, medium
?>
array_combine()函数的作用是用一个数组的值作为其键名,另一个数组的值作为其值的方法来创建数组。
<?php
$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
)
*/
?>
array_merge ()函数的作用是重排单个数组的键值或者合并两个数组。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引,字符键值不会受影响。如果有两个以上的参数,则进行数组合并的操作,如果数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值,如果是相同的数字键
名,后面的值将会附加到原来的值后面。
<?php
$a = array(4=>'green', 6=>'red', 'fruit'=>'yellow');
$a = array_merge($a);
print_r($a)
/* 显示
Array
(
[0] => green
[1] => red
[fruit] => yellow
)
*/
$a = array(4=>'green', 6=>'red', 'fruit'=>'yellow');
$b = array(4=>'greens', 6=>'reds', 'fruit'=>'yellows');
$a = array_merge($a,$b);
print_r($a)
/* 显示
Array
(
[0] => green
[1] => red
[fruit] => yellows
[2] => greens
[3] => reds
)
*/
?>
array_merge_recursive()函数的处理方式和array_merge()函数类似,但是array_merge_recursive()函数可以用来处理多维数组的合并。
<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
/* 显示
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)
*/
?>
count()函数的作用是计算数组的个数。count()函数的第二个参数如果被设置为常量COUNT_RECURSIVE,将会递归地去计算数组的个数。sizeof()函数的作用和count()函数的作用完全相同
<?php
$food = array (
'fruits' => array ('orange','banana','apple'),
'veggie' => array ('carrot','collard','pea')
);
echo count($food, COUNT_RECURSIVE); // 显示 8
echo count($food); // 显示 2
?>
array_count_values()函数的作用统计数组中的值出现的次数。
<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values ($array));
/* 显示
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
*/
?>
array_values()函数的作用是返回所有元素的值。
<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
/* 显示
Array
(
[0] => XL
[1] => gold
)
*/
?>
array_keys()函数的作用是返回数组的键名,如果设置了第二个参数,则可以返回指定值的单元的键值,第三个参数设置为true是,可以让第二个参数进行“===”的比较。
<?php
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
/* 显示
Array
(
[0] => 0
[1] => 3
[2] => 4
)
*/
?>
array_key_exists()函数的作用是检查给定的键名是否存在于数组中。
<?php
$ array = array('first' => 1, 'second' => 4);
echo array_key_exists('first', $ array); // 显示 1
?>
下面这个例子说明array_key_exists()函数和isset()函数在检测时候的微小区别,就是在对null的处理上。
<?php
$search_array = array('first' => null, 'second' => 4);
isset($search_array['first']); // 返回false
array_key_exists('first', $search_array); // 返回true
?>
in_array()函数的作用是检查数组中
是否存在某个值,比较同时检查键值和值。比较是区分大小写的。第三个参数设置为true时,匹配将会通过“===”来进行。
<?php
$a = array('o', array('c' => 'p', 'h'), array('p', 'r'));
echo in_array(array('c' => 'p', 'h'), $a); // 返回true
in_array(array('f', 'i'), $a); // 返回false
in_array('o', $a); // 返回true
?>
array_sum()函数的作用是得出数组所有单元值的和,字符串单元会被自动转换成0。
<?php
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4, "d" => "string");
echo array_sum($b); //显示 6.9
?>
array_product()函数的作用是得出数组所有单元值的乘积,字符串单元会被自动转换成0。
<?php
$a = array(2, 4, 6, 8);
echo array_product($a); //显示 384
?>
array_shift()函数的作用是将数组的第一个单元移出并作为结果返回,将数组的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
<?php
$stack = array(7 => "orange", 8 => "banana", 9 => "apple");
$fruit = array_shift($stack);
print_r($stack);
/* 显示
Array
(
[0] => banana
[1] => apple
)
*/
echo $fruit; // 显示 orange
?>
array_unshift()函数的作用是将传入的单元插入到数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
/* 显示
Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
*/
?
>
array_pop()函数的作用是将数组的最后一个单元弹出,并返回被弹出数组元素的值。
<?php
$queue = array(7 => "orange", 8 => "banana", 9 => "apple");
$fruit = array_pop($queue);
print_r($queue);
/* 显示
Array
(
[7] => orange
[8] => banana
)
*/
echo $fruit; // 显示 apple
?>
array_push()函数的作用是将一个或多个单元添加到数组的末尾,并返回数组新的单元总数
<?php
$stack = array("orange", "banana");
$fruit = array_push($stack, "apple", "raspberry");
print_r($stack);
/* 显示
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)
*/
echo $fruit; // 显示 4
?>
array_slice ()函数的作用是截取出数组中的一段,第二个参数表示从第几个元素开始截取,参数小于0时从后向前计算,第三个参数为正数时,表示截取的长度,为负时,表示截取到末尾的第几个位置,第四个参数设置为true时,函数将保留键值,默认将会重置所有的数字键值。
<?php
$queue = array(7 => "orange", 8 => "banana", 9 => "apple", 10 => "pear");
$fruit = array_slice($queue,1,-1,true);
print_r($fruit);
/* 显示
Array
(
[8] => banana
[9] => apple
)
*/
?>
array_splice(
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论