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] =>英 ) 
?>

 

posted @ 2017-07-11 07:01  生如逆旅,一苇以航  阅读(193)  评论(0编辑  收藏  举报