//今日内容
<?php
/*// 1、array_reverse--返回一个单元顺序相反的数组
// array array_reverse ( array $array [, bool $preserve_keys = false ] )
// array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。
// preserve_keys 如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。
$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, true);
结果:Array
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 4
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)
[1] => 4
[0] => php
)*/
//--------------------------------------------------------------------------
/*// 2、array_search --在数组中搜索给定的值,如果成功则返回相应的键名
// mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
// 返回值
// 如果找到了 needle 则返回它的键,否则返回 FALSE。
// 如果 needle 在 haystack 中出现不止一次,则返回第一个匹配的键。要返回所有匹配值的键,应该用 array_keys() 加上可选参数 search_value 来代替。
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;*/
//--------------------------------------------------------------------------
/*// 3、array_shift --将数组开头的单元移出数组
// mixed array_shift( array &$array )
// array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
// 返回值
// 返回移出的值,如果 array 为 空或不是一个数组则返回 NULL。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
结果:Array
(
[0] => banana
[1] => apple
[2] => raspberry
)*/
//--------------------------------------------------------------------------
/*// 4、array_slice --从数组中取出一段
// array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
// array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
// array
// 输入的数组。
// offset
// 如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。
// length
// 如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。
// preserve_keys
// 注意 array_slice() 默认会重新排序并重置数组的数字索引。你可以通过将 preserve_keys 设为 TRUE 来改变此行为。
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
结果:Array
(
[0] => c
[1] => d
)
Array
(
[2] => c
[3] => d
)*/
//--------------------------------------------------------------------------
/*// 5、array_splice --把数组中的一部分去掉并用其他值取代
// array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )
// 把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代。
// 注意 input 中的数字键名不被保留。
$input = array("red", "green", "blue", "yellow");
print_r(array_splice($input, 2));
结果:
Array
(
[0] => blue
[1] => yellow
)
*/
//--------------------------------------------------------------------------
/*// 6、array_sum --计算数组中所有值的和
// number array_sum ( array $array )
// array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
结果:
sum(a) = 20
sum(b) = 6.9*/
//--------------------------------------------------------------------------
/*// 7、array_unique --移除数组中重复的值
// array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
// array_unique() 接受 array 作为输入并返回没有重复值的新数组。
// 注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
结果:Array
(
[a] => green
[0] => red
[1] => blue
)*/
//--------------------------------------------------------------------------
/*// 8、array_unshift --在数组开头插入一个或多个单元
// int array_unshift ( array &$array , mixed $var [, mixed $... ] )
// array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
结果:Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)*/
//--------------------------------------------------------------------------
/*// 9、array_values --返回数组中所有的值
// array array_values(array $input)
// array_values() 返回 input 数组中所有的值并给其建立数字索引。
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
结果:Array
(
[0] => XL
[1] => gold
)*/
//--------------------------------------------------------------------------
/*// 10、arsort --对数组进行逆向排序并保持索引关系
// bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
// 成功时返回 TRUE, 或者在失败时返回 FALSE。
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
结果:
a = orange
d = lemon
b = banana
c = apple*/
?>