//今日内容
<?php
/*// 1、array_keys — 返回数组中所有的键名
// array array_keys ( array $input [, mixed $search_value = NULL [, bool $strict = false ]] )
// array_keys() 返回 input 数组中的数字或者字符串的键名。
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
结果:Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)*/
//-----------------------------------------------------------------------------------
/*// 2、array_map — 将回调函数作用到给定数组的单元上
// array array_map ( callable $callback , array $arr1 [, array $... ] )
// array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
结果:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)*/
//----------------------------------------------------------------------------------------------
/*// 3、array_merge_recursive--递归地合并一个或多个数组
// array array_merge_recursive(array $array1[, array $... ])
// array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
// 如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
结果:Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)*/
//-------------------------------------------------------------------------------------------------------
/*// 4、array_merge --合并一个或者多个数组
// array array_merge ( array $array1 [, array $... ] )
// array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
// 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
// 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)*/
//--------------------------------------------------------------------------------------------------
/*// 5、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);
// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// not padded*/
//--------------------------------------------------------------------------------------------------------
/*// 6、array_pop--将数组最后一个单元弹出(出栈)
// mixed array_pop(array &$array)
// array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。 此外如果被调用不是一个数则会产生一个 Warning。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
结果:Array
(
[0] => orange
[1] => banana
[2] => apple
)*/
//-------------------------------------------------------------------------------------------------------------
/*// 7、array_product --计算数组中所有值的乘积
// number array_product (array $array)
// array_product()以整数或浮点数返回一个数组中所有的值的乘积
$a=array(2,4,6,8);
echo array_product($a);
echo '<br>';
echo array_product(array());
结果:384
1*/
//--------------------------------------------------------------------------------------------------------
/*// 8、array_push --将一个或多个单元压入数组的末尾
// int array_push ( array &$array , mixed $var [, mixed $... ] )
// array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加
// 返回处理之后数组的元素个数。
$stack = array("orange", "banana");
echo array_push($stack, "apple", "raspberry").'<br>';
print_r($stack);
结果:4
Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )*/
//-------------------------------------------------------------------------------------
/*// 9、array_rand --从数组中随机取出一个或多个单元
// mixed array_rand(array $input [,int $num_req=1])
// 从数组中取出一个或多个随机的单元,并返回随机条目的一个或者键
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";*/
//----------------------------------------------------------------------------------------
/*// 10、array_replace — 使用传递的数组替换第一个数组的元素
// array array_replace ( array $array , array $array1 [, array $... ] )
// array_replace() 函数使用后面数组元素的值替换第一个 array 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
// array_replace() 是非递归的:它将第一个数组的值进行替换而不管第二个数组中是什么类型。
// 返回一个数组。如果发生错误,将返回 NULL。
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");
$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
结果:Array
(
[0] => grape
[1] => banana
[2] => apple
[3] => raspberry
[4] => cherry
)*/
?>