 |
array_pad (PHP 4, PHP 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 个单元。
例子 1. array_pad() 例子
<?php $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 ?>
|
|
参见 array_fill() 和 range()。
oaev at mail dot ru
22-Oct-2004 02:48
Easy way to get an array contains 5 random numbers from 0 to 9:
$rand_arr = array_rand( array_pad( array(), 10, 1 ), 5 );
29-Feb-2004 01:00
One way to initialize a 20x20 multidimensional array.
<?php
$a = array();
$b = array();
$b = array_pad($b,20,0);
$a = array_pad($a,20,$b);
?>
mwwaygoo at hotmail dot com
17-Jan-2004 12:02
little older, a little wiser.
ksort() will order the array back into its normal order again
so:
<?php
$myArr = array(2 => 'two', 4 => 'four');
$newArr = array_pad(array(), 6, 'FILLED');
$newArr =$myArr+$newArr;
ksort($newArr);
?>
Will give :
Array ( [0] => FILLED [1] => FILLED [2] => two [3] => FILLED [4] => four [5] => FILLED )
goffrie at sympatico dot ca
24-Mar-2003 09:06
To daarius - you mean you have...
[2]=>"two"
[3]=>"three"
and you want...
[0]=>"FILLED"
[1]=>"FILLED"
[2]=>"two"
[3]=>"three"
[4]=>"FILLED"
[5]=>"FILLED"
If so, then the following code...
<?php
$array = array(2 => "two", 3 => "three");
$array = array_pad($array, count($array)+2, "FILLED");
$num = -(count($array)+2);
$array = array_pad($array, $num, "FILLED");
print_r($array);
?>
will return:
Array ( [0] => FILLED [1] => FILLED [2] => two [3] => three [4] => FILLED [5] => FILLED )
The ordering should be okay,...
mwwaygoo at hotmail dot com
20-Sep-2002 12:39
OR you could do this
<?php
$myArr = array(2 => 'three', 3 => 'four');
$newArr = array_pad(array(), 4, 'FILLED');
$newArr =$myArr+$newArr;
?>
This gives your desired result BUT the ordering is a little wierd, because of the order they were added. Indexes are okay though and that is what you wanted.
print_r($newArr) outputs
Array ( [2] => three [3] => four [0] => FILLED [1] => FILLED )
hope this helps
daarius at hotmail dot com
23-Jul-2002 10:36
yes that is true. But, if the index of the array is 2=two, 3=three
and i want 4 more keys to be filled. But, not just filled anywhere, but i want to maintain the key index.
so, i would like to have 0=FILLED, 1=FILLED ... 4=FILLED, 5=FILLED
now i got 4 more keys padded with my string.
We can do this "if" we know the missing keys, but if we dont, then it would be nice for array_pad() or perhaps some new function to do this?
obviously we can achive this by looping through the array using array_key_exists(), and if you dont find the key, simply create + fill it.
regards,
Daarius...
scott*hurring.com
20-Jul-2002 07:20
to the previous commenter -- if you read the manual entry, you'd see that a negative pad_size will put the pad values at the front of the array.
ethanhunt314 at hotmail dot com
10-Dec-2000 08:25
This is useful when using next() and prev() function in a while loop to traverse an array.
For example the following code will only output up to 8.
<?php
$test[] = "1";
$test[] = "2";
$test[] = "3";
$test[] = "4";
$test[] = "5";
$test[] = "6";
$test[] = "7";
$test[] = "8";
$test[] = "9";
$test[] = "10";
$test[] = " ";
$test[] = " ";
$test[] = " ";
$count = count($test);
while($i < $count) {
$now = current($test);
echo "<p>$now</p>";
next($test);
next($test);
next($test);
prev($test);
prev($test);
prev($test);
$i++;
next($test);
}
?>
But if you use:
$test = array_pad($test, 13, " ");
you will get all of your output.
|  |