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

search for in the

array_reverse> <array_replace_recursive
Last updated: Fri, 14 Aug 2009

view this page in

array_replace

(PHP 5 >= 5.3.0)

array_replaceRemplace les éléments d'un tableau par ceux d'autres tableaux

Description

array array_replace ( array &$array , array &$array1 [, array &$array2 [, array &$... ]] )

array_replace() remplace les valeurs du premier array avec les valeurs des mêmes clés issues des tableaux suivants. Si une clé du premier tableau existe dans un des tableaux suivants, sa valeur sera remplacée. Si la clé n'existe pas dans le premier tableau, elle sera créée. Si la clé n'existe que dans le premier tableau, elle sera laissée intacte. Si plusieurs tableaux sont passés comme arguments de remplacement, ils seront traités dans l'ordre.

array_replace() n'est pas récursif : il remplace les valeurs du premier tableau par la valeur des tableaux suivants, quelque que soit leur type.

Liste de paramètres

array

Le tableau dans lequel les éléments sont remplacés.

array1

Les tableaux dont les valeurs finiront dans le premier tableau.

Valeurs de retour

Retourne un tableau ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_replace()

<?php
$base 
= array("orange""banana""apple""raspberry");
$replacements = array(=> "pineapple"=> "cherry");
$replacements2 = array(=> "grape");

$basket array_replace($base$replacements$replacements2);
print_r($basket);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

Voir aussi



add a note add a note User Contributed Notes
array_replace
tufan dot oezduman at googlemail dot com
06-Nov-2009 01:19
a little enhancement to dyer85 at gmail dot com's function below:
<?php
if (!function_exists('array_replace'))
{
  function
array_replace( array &$array, array &$array1, $filterEmpty=false )
  {
   
$args = func_get_args();
   
$count = func_num_args()-1;

    for (
$i = 0; $i < $count; ++$i) {
      if (
is_array($args[$i])) {
        foreach (
$args[$i] as $key => $val) {
            if (
$filterEmpty && empty($val)) continue;
           
$array[$key] = $val;
        }
      }
      else {
       
trigger_error(
         
__FUNCTION__ . '(): Argument #' . ($i+1) . ' is not an array',
         
E_USER_WARNING
       
);
        return
NULL;
      }
    }

    return
$array;
  }
}
?>

this will allow you to "tetris-like" merge arrays:

<?php

$a
= array(
   
0 => "foo",
   
1 => "",
   
2 => "baz"
);
$b= array(
   
0 => "",
   
1 => "bar",
   
2 => ""
);

print_r(array_replace($a,$b, true));

?>
results in:
Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)
dyer85 at gmail dot com
29-Jul-2009 06:45
For a backward compatible alternative, you might try something like this:

<?php

if (!function_exists('array_replace'))
{
  function
array_replace( array &$array, array &$array1 )
  {
   
$args = func_get_args();
   
$count = func_num_args();

    for (
$i = 0; $i < $count; ++$i) {
      if (
is_array($args[$i])) {
        foreach (
$args[$i] as $key => $val) {
         
$array[$key] = $val;
        }
      }
      else {
       
trigger_error(
         
__FUNCTION__ . '(): Argument #' . ($i+1) . ' is not an array',
         
E_USER_WARNING
       
);
        return
NULL;
      }
    }

    return
$array;
  }
}

?>

array_reverse> <array_replace_recursive
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites