1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-25 15:42:16 +01:00
Files
archived-doc-fr/reference/array/functions/array-map.xml
Yannick Torres eeb29570e5 sync with EN
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@270095 c90b9560-bf6c-de11-be94-00142212c4b1
2008-11-29 19:07:29 +00:00

385 lines
7.9 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.28 $ -->
<!-- EN-Revision: 1.21 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.array-map">
<refnamediv>
<refname>array_map</refname>
<refpurpose>Applique une fonction sur les éléments d'un tableau</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_map</methodname>
<methodparam><type>callback</type><parameter>callback</parameter></methodparam>
<methodparam><type>array</type><parameter>arr1</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_map</function> retourne un tableau
contenant tous les éléments du tableau <parameter>arr1</parameter>,
après leur avoir appliqué la fonction <parameter>callback</parameter>.
Le nombre de paramètres de la fonction <parameter>callback</parameter>
doit être égal au nombre de tableaux passés dans la fonction
<function>array_map</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
La fonction de rappel à exécuter pour chaque élément de chaque
tableau.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>arr1</parameter></term>
<listitem>
<para>
Un tableau à exécuter via la fonction de
<parameter>callback</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Liste des tableaux à exécuter via la fonction de
<parameter>callback</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne un tableau contenant tous les éléments du tableau
<parameter>arr1</parameter> après avoir appliqué la fonction de
<parameter>callback</parameter> sur chacun d'eux.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>array_map</function></title>
<programlisting role="php">
<![CDATA[
<?php
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
]]>
</programlisting>
<para>
Affichera :
</para>
<screen>
<![CDATA[
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
]]>
</screen>
</example>
<example>
<title><function>array_map</function> - Utilisation d'une fonction quelconque (depuis PHP 5.3.0)</title>
<programlisting role="php">
<![CDATA[
<?php
/* Depuis PHP 5.3.0 */
$func = function($value) { return $value * 2; };
print_r(array_map($func, range(1, 5)));
?>
]]>
</programlisting>
<screen>
<![CDATA[
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>array_map</function> - Utilisation de plusieurs tableaux</title>
<programlisting role="php">
<![CDATA[
<?php
function show_Spanish($n, $m)
{
return("Le nombre $n se dit $m en Espagnol");
}
function map_Spanish($n, $m)
{
return(array($n => $m));
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);
$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
// Contenu de $c
Array
(
[0] => Le nombre 1 se dit uno en Espagnol
[1] => Le nombre 2 se dit dos en Espagnol
[2] => Le nombre 3 se dit tres en Espagnol
[3] => Le nombre 4 se dit cuatro en Espagnol
[4] => Le nombre 5 se dit cinco en Espagnol
)
// Contenu de $d
Array
(
[0] => Array
(
[1] => uno
)
[1] => Array
(
[2] => dos
)
[2] => Array
(
[3] => tres
)
[3] => Array
(
[4] => cuatro
)
[4] => Array
(
[5] => cinco
)
)
]]>
</screen>
</example>
</para>
<para>
Généralement, lors de l'utilisation de plusieurs tableaux, ils doivent
être d'égale longueur, car la fonction de rappel est appliquée de manière
similaire à tous les tableaux. Si les tableaux sont de tailles inégales,
les plus petits seront complétés avec des éléments vides.
</para>
<para>
Une utilisation intéressante de cette fonction est la construction
de tableaux de tableaux, facilement réalisée en passant la valeur
&null; comme nom de fonction de rappel.
</para>
<para>
<example>
<title>Création d'un tableau de tableaux</title>
<programlisting role="php">
<![CDATA[
<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Array
(
[0] => 1
[1] => one
[2] => uno
)
[1] => Array
(
[0] => 2
[1] => two
[2] => dos
)
[2] => Array
(
[0] => 3
[1] => three
[2] => tres
)
[3] => Array
(
[0] => 4
[1] => four
[2] => cuatro
)
[4] => Array
(
[0] => 5
[1] => five
[2] => cinco
)
)
]]>
</screen>
</example>
</para>
<para>
Si le tableau en argument contient des clés sous la forme de chaîne
de caractères, alors, le tableau retourné contiendra également
des clés sous la forme de chaîne de caractères, si et seulement si
un seul tableau est passé. Si plusieurs tableaux sont passés comme
argument, le tableau retourné aura toujours des clés sous la forme
d'entier.
</para>
<para>
<example>
<title><function>array_map</function> - avec des clés sous la forme de &string;</title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array("stringkey" => "value");
function cb1($a) {
return array ($a);
}
function cb2($a, $b) {
return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
["stringkey"]=>
array(1) {
[0]=>
string(5) "value"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
array(1) {
["stringkey"]=>
string(5) "value"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_filter</function></member>
<member><function>array_reduce</function></member>
<member><function>array_walk</function></member>
<member><function>create_function</function></member>
</simplelist>
&seealso.callback;
</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
-->