数组函数20140905study

来源:互联网 发布:淘宝网官方客服电话 编辑:程序博客网 时间:2024/05/22 17:43

//今日内容

<?php/*1、array_column --返回数组中指定的一列。(本函数要求PHP>5.5)array array_column ( array $input , mixed $column_key [, mixed $index_key ] )array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。*///Example/*$records = array(    array(        'id' => 2135,        'first_name' => 'John',        'last_name' => 'Doe',    ),    array(        'id' => 3245,        'first_name' => 'Sally',        'last_name' => 'Smith',    ),    array(        'id' => 5342,        'first_name' => 'Jane',        'last_name' => 'Jones',    ),    array(        'id' => 5623,        'first_name' => 'Peter',        'last_name' => 'Doe',    ));$rs=array_column($records,'first_name','id');print_r($rs);结果:Array(    [2135] => Doe    [3245] => Smith    [5342] => Jones    [5623] => Doe)*///-----------------------------------------------------------------------------/*// 2、array_change_key_case(array $arr,[, int $case = CASE_LOWER ])//返回一个键全是小写或者全是大写的数组;如果输入值(input)不是一个数组,那么返回FALSE$input_array = array("FirSt" => 1, "SecOnd" => 4);// print_r(array_change_key_case($input_array));// 输出:Array ( [first] => 1 [second] => 4 )print_r(array_change_key_case($input_array,CASE_UPPER));//输出:Array ( [FIRST] => 1 [SECOND] => 4 )*///------------------------------------------------------------------------------------/*//3、array_chunk---将一个数组分割为多个//array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )//preserve_keys//设为 TRUE,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。$input_array = array('a', 'b', 'c', 'd', 'e');print_r(array_chunk($input_array, 2));输出:Array(    [0] => Array        (            [0] => a            [1] => b        )    [1] => Array        (            [0] => c            [1] => d        )    [2] => Array        (            [0] => e        ))print_r(array_chunk($input_array, 2, true));输出:Array(    [0] => Array        (            [0] => a            [1] => b        )    [1] => Array        (            [2] => c            [3] => d        )    [2] => Array        (            [4] => e        ))*///---------------------------------------------------------------------/*4、array_combine --创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值array array_combine ( array $keys , array $values )返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。$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)*///----------------------------------------------------------------------------/*//5、array_count_values()--统计数组中所有的值出现的次数//array array_count_values ( array $input )返回一个数组,该数组用 input 数组中的值作为键名,该值在 input 数组中出现的次数作为值。$array = array(1, "hello", 1, "world", "hello");print_r(array_count_values($array));输出:Array(    [1] => 2    [hello] => 2    [world] => 1)*///---------------------------------------------------------------------------/*//6、array_fill_keys--使用指定的键和值填充数组//array array_fill_keys ( array $keys , mixed $value )//使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。$keys = array('foo', 5, 10, 'bar');$a = array_fill_keys($keys, 'banana');print_r($a);输出:Array(    [foo] => banana    [5] => banana    [10] => banana    [bar] => banana)*///----------------------------------------------------------------------------/*// 7、array_fill --用给定的值填充数组// array array_fill ( int $start_index , int $num , mixed $value )// array_fill() 用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。// start_index// 返回的数组的第一个索引值。// 如果 start_index 是负数, 那么返回的数组的第一个索引将会是 start_index ,而后面索引则从0开始。 // num// 插入元素的数量。 必须大于 0。// value// 用来填充的值。$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)*///----------------------------------------------------------------/*//8、array_filter--用回调函数过滤数组中的单元//array array_filter ( array $input [, callable $callback = "" ] )//依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。function odd($var){    // returns whether the input integer is odd    return($var & 1);}function even($var){    // returns whether the input integer is even    return(!($var & 1));}$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);$array2 = array(6, 7, 8, 9, 10, 11, 12);echo "Odd :\n";print_r(array_filter($array1, "odd"));echo "Even:\n";print_r(array_filter($array2, "even"));结果:Odd :Array(    [a] => 1    [c] => 3    [e] => 5)Even:Array(    [0] => 6    [2] => 8    [4] => 10    [6] => 12)*///-----------------------------------------------------------------/*// 9、array_flip--交换数组中的键和值// array array_flip ( array $trans )// array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。//如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。$trans = array("a" => 1, "b" => 2, "c" => 3);$trans = array_flip($trans);print_r($trans);*///------------------------------------------------------/*// 10、array_key_exists — 检查给定的键名或索引是否存在于数组中// bool array_key_exists ( mixed $key , array $search )// array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。$search_array = array('first' => 1, 'second' => 4);if (array_key_exists('first', $search_array)) {    echo "The 'first' element is in the array";}*/?>


0 0
原创粉丝点击