PHP拆分与接合数组

服务器君一共花费了5.402 ms进行了6次数据库查询,努力地为您提供了提供了这个页面。

拆分数组 array_slice()

array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式:

array array_slice (array array, int offset[,int length])

offset 为正值时,拆分将从距数组开头的offset 位置开始;如果offset 为负值,则拆分从距数组末尾的offset 位置开始。如果省略了可选参数length,则拆分将从offset 开始,一直到数组的最后一个元素。如果给出了length 且为正数,则会在距数组开头的offset+length 位置结束。相反,如果给出了length且为负数,则在距数组开头的count(input_array)-|length|位置结束。考虑一个例子:

<?php

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");
$subset = array_slice($fruits, 3);
print_r($subset);

// output
// Array ( [0] => Pear [1] => Grape [2] => Lemon [3] => Watermelon )
?>

然后我们使用下负长度:

<?php

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");
$subset = array_slice($fruits, 2, -2);
print_r($subset);

// output
// Array ( [0] => Orange [1] => Pear [2] => Grape )
?>

接合数组 array_splice()

array_splice()函数会删除数组中从offset开始到offset+length 结束的所有元素,并以数组的形式返回所删除的元素。其形式为:

array array_splice ( array array , int offset[,length[,array replacement]]) 

offset 为正值时,则接合将从距数组开头的offset 位置开始,offset 为负值时,接合将从距数组末尾的offset 位置开始。如果忽略可选的length 参数,则从offset 位置开始到数组结束之间的所有元素都将被删除。如果给出了length 且为正值,则接合将在距数组开头的offset + leng th 位置结束。相反,如果给出了length且为负值,则结合将在距数组开头的count(input_array)-length的位置结束。实例如下:

<?php

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");
$subset = array_splice($fruits, 4);

print_r($fruits);
print_r($subset);

// output
// Array ( [0] => Apple [1] => Banana [2] => Orange [3] => Pear ) 
// Array ( [0] => Grape [1] => Lemon [2] => Watermelon )
?>

可以使用可选参数replacement来指定取代目标部分的数组。实例如下:

<?php

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");
$subset = array_splice($fruits, 2, -1, array("Green Apple", "Red Apple"));

print_r($fruits);
print_r($subset);

// output
// Array ( [0] => Apple [1] => Banana [2] => Green Apple [3] => Red Apple [4] => Watermelon ) 
// Array ( [0] => Orange [1] => Pear [2] => Grape [3] => Lemon )
?>

从程序可以很清楚看到这个函数的使用方法了。

Creative Commons License

本文仅供自己学习与收藏之用,请勿转载,请勿用作其它用途(如商业目的等)。 原文链接:http://www.nowamagic.net/librarys/posts/php/65