PHP中的数组功能非常强大,数组处理函数有着强大、灵活、高效的特点。PHP5提供了近100个操作数组的系统函数,包括排序函数、替换函数、数组计算函数等。下面将详细介绍数组函数
[注意]关于javascript数组的22种方法移步至此
数组的每个元素都是由键值对组成,通过元素的键名来访问对应的键值。关于键值操作有array_html' target='_blank'>values()、array_keys()、in_array()、array_flip()和array_reverse()这5个常用函数
array_values
array_values() 返回 input 数组中所有的值并给其建立数字索引
array array_values ( array $input )
<?php$array = array('size' => 'XL', 'color' => 'gold');//Array ( [0] => XL [1] => gold )print_r(array_values($array));?>
array_keys
array_keys() 返回 input 数组中的数字或者字符串的键名
array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )
如果指定了可选参数 search_value,则只返回该值的键名。否则 input 数组中的所有键名都会被返回
如果指定了可选参数 strict,表示判断在搜索的时候是否该使用严格的比较(===)
<?php$array = array(0 => 100, 'color' => 'red');//Array ( [0] => 0 [1] => color ) print_r(array_keys($array));$array = array('blue', 'red', 'green', 'blue', 'blue');// Array ( [0] => 0 [1] => 3 [2] => 4 ) print_r(array_keys($array, 'blue'));$array = array('color' => array('blue', 'red', 'green'), 'size' => array('small', 'medium', 'large'));Array ( [0] => color [1] => size )print_r(array_keys($array));?>
in_array
in_array — 检查数组中是否存在某个值
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同
<?php$os = array('Mac', 'NT', 'Irix', 'Linux');if (in_array('Irix', $os)) { //Got Irix echo 'Got Irix';}if (in_array('mac', $os)) { echo 'Got mac';}?>
array_flip
array_flip — 交换数组中的键和值,成功时返回交换后的数组,如果失败返回 NULL
array array_flip ( array $trans )
array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名
如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了
[注意]trans中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转
<?php$trans = array('a' => 1, 'b' => 1, 'c' => 2);$trans = array_flip($trans);//Array ( [1] => b [2] => c )print_r($trans);?>
array_reverse
array_reverse — 返回一个单元顺序相反的数组
array array_reverse ( array $array [, bool $preserve_keys = false ] )
如果参数preserve_keys设置为 TRUE 会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留
<?php$input = array('php', 4.0, array('green', 'red'));$result = array_reverse($input);/*array (size=3) 0 => array (size=2) 0 => string 'green' (length=5) 1 => string 'red' (length=3) 1 => float 4 2 => string 'php' (length=3) */var_dump($result);$result_keyed = array_reverse($input, true);/*array (size=3) 2 => array (size=2) 0 => string 'green' (length=5) 1 => string 'red' (length=3) 1 => float 4 0 => string 'php' (length=3) */var_dump($result_keyed);?>
count
count — 计算数组中的单元数目或对象中的属性个数
int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。mode 的默认值是 0。count() 识别不了无限递归
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答