Files
doc-fr/reference/array/functions/array-udiff.xml
Yannick Torres d7badfd4ec sync with EN Revision
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@164441 c90b9560-bf6c-de11-be94-00142212c4b1
2004-07-27 13:07:22 +00:00

130 lines
4.1 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.8 $ -->
<!-- EN-Revision: 1.8 Maintainer: dams Status: ready -->
<refentry id="function.array-udiff">
<refnamediv>
<refname>array_udiff</refname>
<refpurpose>
Calcule la différence entre deux tableaux en utilisant une fonction callback
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>array</type><methodname>array_udiff</methodname>
<methodparam><type>array</type><parameter>array1</parameter></methodparam>
<methodparam><type>array</type><parameter>array2</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
<methodparam><type>callback</type><parameter>data_compare_func</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_udiff</function> retourne un tableau
contenant toutes les valeurs de <parameter>array1</parameter>
qui ne sont pas présents dans les autres arguments <parameter>array2</parameter>,
<parameter>...</parameter>.
Notez que les clefs sont préservées. Pour la comparaison des données,
la fonction <parameter>data_compare_func</parameter> est utilisée.
Cette fonction doit retourner un entier plus petit que, égal à, ou plus
grand que zéro si le premier argument est respectivement plus petit que,
égal au, ou plus grand que le second. Ce comportement est différent de
celui de <function>array_diff</function> où une fonction interne de
comparaison des données est utilisée.
</para>
<para>
<example>
<title>Exemple avec <function>array_udiff</function></title>
<programlisting role="php">
<![CDATA[
<?php
class cr {
private $priv_member;
function cr($val) {
$this->priv_member = $val;
}
static function comp_func_cr($a, $b) {
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);
$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>
]]>
</programlisting>
<para>
Le résultat est :
</para>
<screen>
<![CDATA[
Array
(
[0.5] => cr Object
(
[priv_member:private] => 12
)
[0] => cr Object
(
[priv_member:private] => 23
)
)
]]>
</screen>
</example>
</para>
<note>
<simpara>
Deux éléments sont considérés égaux si et seulement si
<literal>(string) $elem1 === (string) $elem2</literal>. En clair :
lorsque la représentation en chaîne est la même.
</simpara>
</note>
<note>
<simpara>
Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau
multi-dimensionnel. Vous pouvez, bien sûr, tester une dimension
particulière en utilisant par exemple
<literal>array_udiff($array1[0], $array2[0], "data_compare_func");</literal>.
</simpara>
</note>
<para>
Voir aussi
<function>array_diff</function>,
<function>array_diff_assoc</function>,
<function>array_diff_uassoc</function>,
<function>array_udiff_assoc</function>,
<function>array_udiff_uassoc</function>,
<function>array_intersect</function>,
<function>array_intersect_assoc</function>,
<function>array_uintersect</function>,
<function>array_uintersect_assoc</function> et
<function>array_uintersect_uassoc</function>.
</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
-->