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

search for in the

array_pop> <array_multisort
[edit] Last updated: Fri, 25 May 2012

view this page in

array_pad

(PHP 4, PHP 5)

array_padComplète un tableau avec une valeur jusqu'à la longueur spécifiée

Description

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

array_pad() retourne une copie du tableau input complétée jusqu'à la taille de pad_size avec la valeur pad_value. Si pad_size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de pad_size est plus petite que la taille du tableau input, alors le tableau n'est pas complété. Il est possible d'ajouter au maximum 1048576 éléments d'un seul coup.

Liste de paramètres

input

Tableau initial de valeurs à compléter.

pad_size

Nouvelle taille du tableau.

pad_value

Valeur à insérer si l'argument input est plus petit que l'argument pad_size.

Valeurs de retour

Retourne une copie du tableau input complétée jusqu'à la taille de pad_size avec la valeur pad_value. Si pad_size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de pad_size est plus petite que la taille du tableau input, alors le tableau n'est pas complété.

Exemples

Exemple #1 Exemple avec array_pad()

<?php
$input 
= array(12109);

$result array_pad($input50);
// Le résultat est : array(12, 10, 9, 0, 0)

$result array_pad($input, -7, -1);
// Le résultat est : array(-1, -1, -1, -1, 12, 10, 9)

$result array_pad($input2"noop");
// pas complété
?>

Voir aussi

  • array_fill() - Remplit un tableau avec une même valeur
  • range() - Crée un tableau contenant un intervalle d'éléments



array_pop> <array_multisort
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes array_pad
sonu50imedbvu at gmail dot com(Sonu Jaiswal) 11-Jan-2011 05:53
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.
tugla 18-Dec-2008 02:23
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
)
hk, StrApp Bussiness Solutions 07-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 21-Oct-2004 05: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 );
28-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 16-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 23-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 19-Sep-2002 03: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 01: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 19-Jul-2002 10: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 09-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.

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