PHP中如何动态改变数组大小
PHP中我们是修改数组大小的,比如增大或减小数组的当前大小。
使用array_pad()使数组增大:
// start at three
$array = array('apple', 'banana', 'coconut');
// grow to five
$array = array_pad($array, 5, '');
现在,count($array)的值是5,而最后两个元素,$array[3]和$array[4]中包含的是空字符串。
要减小数组大小,可以使用array_splice():
// no assignment to $array
array_splice($array, 2);
这样就把除了前两个元素之外的所有元素从$array中删除了。
PHP中的数组并没有预定义的大小,所以可以随时修改其大小。
要扩充一个数组,使用array_pad()。其第一个参数是要扩充的数组,第二个参数表示想要扩充的大小和方向。如果想向右扩充,那么使用正整数;想向左扩充,就使用负整数。第三个参数是要赋给新创建元素的值。这个函数会返回修改后的数组,但不会修改原来的数组。
下面请看几个例子
// 向右扩充生成一个包含四个元素的数组,第四个元素的值为'dates'
$array = array('apple', 'banana', 'coconut');
$array = array_pad($array, 4, 'dates');
print_r($array);
Array
(
[0] => apple
[1] => banana
[2] => coconut
[3] => dates
)
// 向左扩充生成一个包含六个元素的数组,最左端两个元素的值为'zucchini'
$array = array_pad($array, -6, 'zucchini');
print_r($array);
Array
(
[0] => zucchini
[1] => zucchini
[2] => apple
[3] => banana
[4] => coconut
[5] => dates
)请注意:array_pad($array, 4, 'dates')可以保证生成一个至少包含四个元素的数组,但它不是添加四个新元素。此时,如果$array中已经包含了四个或更多个元素,array_pad()则会返回原来的数组。
同样地,如果为第四个元素$array[4]声明了一个值:
$array = array('apple', 'banana', 'coconut');
$array[4] = 'dates';
那么所得到数组的索引依次是0,1,2和4:
Array
(
[0] => apple
[1] => banana
[2] => coconut
[4] => dates
)
实际上,PHP在这种情况下把数组转换成了一个以整数作为键的关联数组。
与array_pad()函数不同,array_splice()有修改原先数组的副作用。它返回的是经过拼合后的数组。然而,与array_pad()相似的是,也可以从左、右两端对数组进行拼合。所以如果在调用array_splice()时使用-2作为参数,那么就会将数组中倒数后两个元素删掉。
// make a four-element array
$array = array('apple', 'banana', 'coconut', 'dates');
// shrink to three elements
array_splice($array, 3);
// remove last element, equivalent to array_pop()
array_splice($array, -1);
// only remaining fruits are apple and banana
print_r($array);
Array
(
[0] => apple
[1] => banana
)转载请注明:http://www.itivy.com/php/archive/2012/2/20/php-array-pad.html
上一篇:PHP如何利用unset()删除数组中的元素
下一篇:PHP中用sort、asort、natsort函数对数组排序