除了用系统自带的函数array_slice,array_splice,可以用下面的自定义函数
function atrim( $a, $num ) {
while( sizeof( $a ) > $num ) array_pop( $a );
return $a;
}
手册上的例子已经很全了
定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。
注释:如果数组有字符串键,所返回的数组将保留键名。(参见例子 4)
语法
array_slice(array,offset,length,preserve)
| 参数 | 描述 |
|---|---|
| array | 必需。规定输入的数组。 |
| offset |
必需。数值。规定取出元素的开始位置。 如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。 |
| length |
可选。数值。规定被返回数组的长度。 如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。 |
| preserve |
可选。可能的值:
|
例子 1
<?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,1,2)); ?>
输出:
Array ( [0] => Cat [1] => Horse )
例子 2
带有负的 offset 参数:
<?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,-2,1)); ?>
输出:
Array ( [0] => Horse )
例子 3
preserve 参数设置为 true:
<?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,1,2,true)); ?>
输出:
Array ( [1] => Cat [2] => Horse )
例子 4
带有字符串键:
<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird");
print_r(array_slice($a,1,2));
?>
输出:
Array ( [b] => Cat [c] => Horse )
定义和用法
array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。
如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。
最后生成的数组将会返回。
语法
array_splice(array,offset,length,array)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| offset | 必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。 |
| length | 可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的元素。 |
| array | 被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。 |
提示和注释
提示:如果函数没有删除任何元素 (length=0),则替代数组将从 start 参数的位置插入。(参见例子 3)
注释:不保留替代数组中的键。
例子 1
<?php $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); $a2=array(0=>"Tiger",1=>"Lion"); array_splice($a1,0,2,$a2); print_r($a1); ?>
输出:
Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
例子 2
与例子 1 相同,但是输出返回的数组:
<?php $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); $a2=array(0=>"Tiger",1=>"Lion"); print_r(array_splice($a1,0,2,$a2)); ?>
输出:
Array ( [0] => Dog [1] => Cat )
例子 3
length 参数设置为 0:
<?php $a1=array(0=>"Dog",1=>"Cat"); $a2=array(0=>"Tiger",1=>"Lion"); array_splice($a1,1,0,$a2); print_r($a1); ?>
输出:
Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )