Files
doc-fr/reference/array/functions/array-merge.xml
Damien Seguy e7658f0248 sync with en
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@175478 c90b9560-bf6c-de11-be94-00142212c4b1
2004-12-23 15:54:29 +00:00

220 lines
5.4 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.26 $ -->
<!-- EN-Revision: 1.15 Maintainer: dams Status: ready -->
<refentry id="function.array-merge">
<refnamediv>
<refname>array_merge</refname>
<refpurpose>Fusionne un ou plusieurs tableaux</refpurpose>
</refnamediv>
<refsect1>
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_merge</methodname>
<methodparam><type>array</type><parameter>array1</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>array2</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_merge</function> rassemble les éléments d'un ou de
plusieurs tableaux <parameter>array1</parameter>, <parameter>array2</parameter>,
<parameter>...</parameter> ensemble, en ajoutant les valeurs de l'un à la
fin de l'autre. Le résultat est un tableau.
</para>
<para>
Si les tableaux ont des clés en commun, la dernière valeur
rencontrée écrasera l'ancienne. Pour les valeurs numériques,
cela <emphasis role="strong">n'arrive pas</emphasis>, car alors,
les valeurs sont ajoutées en fin de tableau.
</para>
<para>
Si vous passez un seul tableau à cette fonction et qu'il a des indices
numériques, les clefs seront réindexées normalement. Pour les tableaux
associatifs, les entrées dupliquées seront fusionnées dans la dernière.
Voyez le troisième exemple pour plus de détails.
</para>
<para>
<example>
<title>Exemple avec <function>array_merge</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array ("couleur" => "rouge", 2, 4);
$array2 = array ("a", "b", "couleur" => "vert", "forme" => "trapézo&Ocirc;de");
$result = array_merge ($array1, $array2);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
[couleur] => vert
[0] => 2
[1] => 4
[2] => a
[3] => b
[forme] => trapézo&Ocirc;de
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Exemple avec <function>array_merge</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
]]>
</programlisting>
<para>
N'oubliez pas que les index numériques seront renumérotés.
</para>
<screen role="php">
<![CDATA[
Array
(
[0] => data
)
]]>
</screen>
</example>
</para>
<para>
Si vous voulez préserver complètement les tableaux, et que
vous souhaitez simplement les ajouter les uns aux autres,
utilisez l'opérateur <literal>+</literal> :
<example>
<title />
<programlisting role="php">
<![CDATA[
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>
]]>
</programlisting>
<para>
Les index numériques seront préservés. D'où le résultat :
</para>
<screen role="php">
<![CDATA[
Array
(
[1] => data
)
]]>
</screen>
</example>
<example>
<title>Exemple avec <function>array_merge</function> (3)</title>
<programlisting role="php">
<![CDATA[
<?php
$array_one = array(0 => "gui", 1 => "ghis", 2 => "bob", 3 => "dams");
$array_two = array("dams" => "bob", "gui" => "ghis", "dams" => "didou");
unset($array_one[2]);
$result_one = array_merge($array_one);
$result_two = array_merge($array_two);
print_r($result_one);
print_r($result_two);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
[0] => gui
[1] => ghis
[2] => dams
)
Array
(
[dams] => didou
[gui] => ghis
)]]>
</screen>
</example>
</para>
<note>
<para>
Les clés communes seront écrasées successivement
par les clés identiques suivantes.
</para>
</note>
    <warning>
     <para>
      Le comportement de <function>array_merge</function> a été modifié en &php; 5. 
Contrairement à &php; 4, <function>array_merge</function> n'accepte que
des paramètres de type <type>array</type>. Cependant, vous pouvez utiliser
le transtypage pour fusionner les autres de types de valeurs.
Voyez l'exemple ci-dessous.
     </para>
     <para>
      <example>
       <title>Exemple avec <function>array_merge</function> en &php; 5</title>
       <programlisting role="php">
<![CDATA[
<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
?>
]]>
       </programlisting>
       &example.outputs;
       <screen role="php">
<![CDATA[
Array
(
    [0] => foo
    [1] => bar
)
]]>
       </screen>
      </example>
     </para>
    </warning>
<para>
Voir aussi
<function>array_merge_recursive</function>,
<function>array_combine</function> et
<link linkend="language.operators.array">les opérateurs de tableaux</link>.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->