//今日内容
<?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";
}*/
?>