数组函数20140905study

//今日内容

<?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";
}*/
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值