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

search for in the

array_pop> <array_multisort
[edit] Last updated: Fri, 07 Jun 2013

view this page in

array_pad

(PHP 4, PHP 5)

array_padRellena un array a la longitud especificada con un valor

Descripción

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

array_pad() devuelve una copia de input rellenada al tamaño especificado por pad_size con el valor pad_value. Si pad_size es positivo el array se rellena hacia la derecha, si es negativo hacia la izquierda. Si el valor absoluto de pad_size es menor o igual a la longitud de input, no se lleva a cabo el relleno. Es posible añadir como máximo 1048576 elementos de una sola vez.

Parámetros

input

Array inicial de valores a rellenar.

pad_size

Nuevo tamaño del array.

pad_value

Valor a rellenar si input es menor que pad_size.

Valores devueltos

Devuelve una copia de input rellenada al espacio especificado por pad_size con el valor pad_value. Si pad_size es positivo el array es relleno hacia la derecha, si es negativo hacia la izquierda. Si el valor absoluto de pad_size es menor o igual que la longitud de input, no se lleva a cabo el relleno.

Ejemplos

Ejemplo #1 Ejemplo de array_pad()

<?php
$input 
= array(12109);

$result array_pad($input50);
// el resultado es array(12, 10, 9, 0, 0)

$result array_pad($input, -7, -1);
// el resultado es array(-1, -1, -1, -1, 12, 10, 9)

$result array_pad($input2"noop");
// sin relleno
?>

Ver también

  • array_fill() - Llena un array con valores
  • range() - Crear un array que contiene un rango de elementos



array_pop> <array_multisort
[edit] Last updated: Fri, 07 Jun 2013
 
add a note add a note User Contributed Notes array_pad - [11 notes]
up
3
mwwaygoo at hotmail dot com
10 years ago
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
up
1
goffrie at sympatico dot ca
10 years ago
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,...
up
1
scott*hurring.com
10 years ago
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.
up
2
tugla
4 years ago
Beware, if you try to pad an associative array using numeric keys, your keys will be re-numbered.

<?php
$a
= array('size'=>'large', 'number'=>20, 'color'=>'red');
print_r($a);
print_r(array_pad($a, 5, 'foo'));

// use timestamps as keys
$b = array(1229600459=>'large', 1229604787=>20, 1229609459=>'red');
print_r($b);
print_r(array_pad($b, 5, 'foo'));
?>

yields this:
------------------
Array
(
    [size] => large
    [number] => 20
    [color] => red
)
Array
(
    [size] => large
    [number] => 20
    [color] => red
    [0] => foo
    [1] => foo
)
Array
(
    [1229600459] => large
    [1229604787] => 20
    [1229609459] => red
)
Array
(
    [0] => large
    [1] => 20
    [2] => red
    [3] => foo
    [4] => foo
)
up
1
mwwaygoo at hotmail dot com
9 years ago
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 )
up
0
oaev at mail dot ru
8 years ago
Easy way to get an array contains 5 random numbers from 0 to 9:

$rand_arr = array_rand( array_pad( array(), 10, 1 ), 5 );
up
0
Anonymous
9 years ago
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);
?>
up
0
daarius at hotmail dot com
10 years ago
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...
up
-1
sonu50imedbvu at gmail dot com(Sonu Jaiswal)
2 years ago
Just an info about the value of "$pad_size" ,

If we set the value of "$pad_size" from -3 to 3,

It will produce the output like:

<?php
$result
= array_pad($input, -3, "noop");
//result is array(12, 10, 9)

$result = array_pad($input, 3, "noop");
//result is array(12, 10, 9)
?>

means array will remain the same.
up
-1
hk, StrApp Bussiness Solutions
6 years ago
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 )
up
-1
ethanhunt314 at hotmail dot com
12 years ago
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.

 
show source | credits | sitemap | contact | advertising | mirror sites