PHP:第四章——PHP数组转换,统计,相关函数
<pre> <?php //数组转换,统计,相关函数 header("Content-Type:text/html;charset=utf-8"); //count();计算数组的单元数目。别名:sizeof(); //例: /*$arr=array(2,4,6); echo count($arr);//输出:3 */ //array_change_key_case 返回字符串键名全为大写或是小写的数组。 /*原形:array array_flip ( array $trans ) 功能:返回一个反转后的 array。例如 trans 中的键名变成了值,而 trans 中的值成了键名。 注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。 如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。 如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。 */ //默认是小写,加上CASE_UPPER全为大写。 /*$arr=array('First'=>1,'Second'=>2); $arr2=array_change_key_case($arr,CASE_UPPER); print_r($arr2);//输出数组$arr2,键名全是大写字母。 */ //array_flip() 交换数组中的键和值。返回反转后的数组。 /*$a=array('First'=>1,'Second'=>2); $b=array_flip($a); print_r($b);*/ /* 输出: Array ( [1] => First [2] => Second ) */ //array_column();返回数组中指定的一列 /*函数原形:array array_column ( array $input , mixed $column_key [, mixed $index_key ] ) array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。 参数说明: input 需要取出数组列的多维数组(或结果集) column_key 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用) index_key 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。 返回值:从多维数组中返回单列数组*/ //例:提前老师的姓 /*$records = array( array( 'id' => 2135, 'first_name' => '张', 'last_name' => '老师', ), array( 'id' => 3245, 'first_name' => '王', 'last_name' => '老师', ), array( 'id' => 5342, 'first_name' => '李', 'last_name' => '老师', ), array( 'id' => 5623, 'first_name' => '赵', 'last_name' => '老师', ) ); $first_name=array_column($records,'first_name'); print_r($first_name);*/ /* 输出: Array ( [0] => 张 [1] => 王 [2] => 李 [3] => 赵 ) */ //用firt_name作为值,用id作为键,输出新的数组。 /*$first_name2=array_column($records,'first_name','id'); print_r($first_name2);*/ /* 输出: Array ( [2135] => 张 [3245] => 王 [5342] => 李 [5623] => 赵 ) */ //array_combine()创建一个一个数组,用一个数组作为键,另一个数组作为值。 /*函数原形:array array_combine ( array $keys , array $values ) 功能:返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。 注意:返回合并的 array,如果两个数组的单元数不同则返回 FALSE。 */ //例: /*$arr1=array('羊','狗','鱼'); $arr2=array('草','肉','水'); $arr3=array_combine($arr1,$arr2); print_r($arr3);*/ /*输出: Array ( [羊] => 草 [狗] => 肉 [鱼] => 水 ) */ //array_count_values()统计数组中所有值出现的次数。 /*函数原形:array array_count_values ( array $input ) array_count_values() 返回一个数组,该数组用 input 数组中的值作为键名,该值在 input 数组中出现的次数作为值*/ //例: /*$arr=array('Hello','women','Hello','Hello','mon','women'); print_r(array_count_values($arr));*/ /* 输出: Array ( [Hello] => 3 [women] => 2 [mon] => 1 ) */ //array_sum — 计算数组中所有值的和 /*原形:number array_sum ( array $array ) 功能:将数组中的所有值的和以整数或浮点数的结果返回。 说明:如果数组的值不是数值型,会按强制转换原则进行转换。 代码示例:统计购物车中所有商品总价*/ /*$a=array(2,3,4,5); $b=array_sum($a); print_r($b);*/ //输出:14 //array_product 计算数组中所有元素的乘积 /*原形:number array_product ( array $array ) 功能:array_product() 以整数或浮点数返回一个数组中所有值的乘积。 代码示例:本函数实用价值不强,了解即可 */ /*$arr=range(1,5); $b=array_product($arr); print_r($b);//输出:120*/ //array_fill — 用给定的值填充创建数组 /*原形:array array_fill ( int $start_index , int $num , mixed $value ) 功能:用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。 参数说明: 如果 start_index 是负数, 那么返回的数组的第一个索引将会是 start_index ,而后面索引则从0开始。 插入元素的数量。 必须大于 0。 返回:填充后的数组,如果 num 少于一个,将会抛出 E_WARNING。 */ /*$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 ) */ /*array_fill_keys — 使用指定的键和值填充数组。 了解即可 原形:array array_fill_keys ( array $keys , mixed $value ) 使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。 */ /*$keys = array('D', 5, 10, 'L'); $a = array_fill_keys($keys, '中国'); print_r($a);//结果:Array ( [D] => 中国 [5] => 中国 [10] => 中国 [L] => 中国 ) */ //array_pad 用值将数组填补到指定长度(了解即可) /*原形:array array_pad ( array $input , int $pad_size , mixed $pad_value ) array_pad() 返回 input 的一个拷贝,并用 pad_value 将其填补到 pad_size 指定的长度。如果 pad_size 为正,则填补到数组的右侧,如果为负则从左侧开始填补。如果 pad_size 的绝对值小于或等于 input 数组的长度则没有任何填补。有可能一次最多填补 1048576 个单元。 */ /*$input = array(12, 10, 9); $result = array_pad($input, 5, 0); //结果:array(12, 10, 9, 0, 0)*/ //array_reverse — 返回一个单元顺序相反的数组 /*原形:array array_reverse ( array $array [, bool $preserve_keys = false ] ) 功能:array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。 参数说明:preserve_keys 如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。 */ /*$a= array('D' => '中', '美', '日'); $b = array_reverse($a); print_r($b);*/ /*输出: Array( [0] => 日 [1] => 美 [D] => 中) */ //array_keys — 返回数组中部分的或所有的键名 /*原形:array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] ) 功能:array_keys() 返回 input 数组中的数字或者字符串的键名。 如果指定了可选参数 search_value,则只返回该值的键名。否则 input 数组中的所有键名都会被返回。 参数说明: search_value 如果指定了这个参数,只有包含这些值的键才会返回。 strict 判断在搜索的时候是否该使用严格的比较(===)。 */ $a = array('x' => 'a', 'y' => 'b','d' => 'c', 'l' => 'd'); $b = array_keys($a); print_r($b); //提取键形成新数组 array ( 0 => 'x', 1 => 'y', 2 => 'd', 3 => 'l') /* array_values — 返回数组中所有的值 原形:array array_values ( array $input ) 功能:array_values() 返回 input 数组中所有的值并给其建立数字索引。 */ /*$a = array('d' => '中', 'l' => '德','x' => '法', 'y' => '英'); $b = array_values($a); print_r($b);*/ //结果: Array ( [0] => 中 [1] => 德 [2] =>法 [3] =>英 ) ?>