Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: array_pad - Manual
[go: Go Back, main page]

PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

array_pop" width="11" height="7"/> <array_multisort
Last updated: Thu, 31 May 2007

view this page in

array_pad

(PHP 4, PHP 5)

array_pad — 指定長、指定した値で配列を埋める

説明

array array_pad ( array $input, int $pad_size, mixed $pad_value )

array_pad() は、pad_size で指定した長さになるように値 pad_value で埋めて input のコピーを返します。 pad_size が正の場合、配列の右側が埋められます。 負の場合、配列の左側が埋められます。 pad_size の絶対値が input の長さ以下の場合、埋める処理は行われません。 一度に追加できる要素の最大数は 1048576 です。

例 264. array_pad() の例

<?php
$input
= array(12, 10, 9);

$result = array_pad($input, 5, 0);
// 結果は、array(12, 10, 9, 0, 0) です。

$result = array_pad($input, -7, -1);
// 結果は、array(-1, -1, -1, -1, 12, 10, 9) です。

$result = array_pad($input, 2, "noop");
// 埋める処理は行われません。
?>

array_fill() および range() も参照ください。



array_pop" width="11" height="7"/> <array_multisort
Last updated: Thu, 31 May 2007
 
add a note add a note User Contributed Notes
array_pad
hk, StrApp Bussiness Solutions
08-Jan-2007 07:15
A simple example for array_pad()

the syntax is as follows: array_pad(array(), (+/-)int, value)

where "array" is the array to which the value is to be added,

"(+/-) int" is a value that decides the length of the array(it should be greater than the length of the array.
if its a negative number then the value will be added at the left of the array else it will be added to the right.

"values" denotes the value to be added to the array

lets try an example:

<?php

$digits
= array();
$digits[0] = 1;
$digits[1] = 2;
$digits[2] = 3;
$arraypad = array_pad($digits, -4, "0");
print_r($arraypad);

?>

output:

Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
oaev at mail dot ru
22-Oct-2004 03: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 02: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 01: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 10: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 01: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 11: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 08: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 09: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.

array_pop" width="11" height="7"/> <array_multisort
Last updated: Thu, 31 May 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites