<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >array_udiff</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Arrays" HREF="ref.array.html"><LINK REL="PREVIOUS" TITLE="array_udiff_uassoc" HREF="function.array-udiff-uassoc.html"><LINK REL="NEXT" TITLE="array_uintersect_assoc" HREF="function.array-uintersect-assoc.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.array-udiff-uassoc.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.array-uintersect-assoc.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.array-udiff" ></A >array_udiff</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN11824" ></A ><P > (PHP 5)</P >array_udiff -- Computes the difference of arrays by using a callback function for data comparison</DIV ><DIV CLASS="refsect1" ><A NAME="AEN11827" ></A ><H2 >Description</H2 >array <B CLASS="methodname" >array_udiff</B > ( array array1, array array2 [, array ..., callback data_compare_func] )<BR ></BR ><P > <B CLASS="function" >array_udiff()</B > returns an array containing all the values of <CODE CLASS="parameter" >array1</CODE > that are not present in any of the other arguments. Note that keys are preserved. For the comparison of the data <CODE CLASS="parameter" >data_compare_func</CODE > is used. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike <A HREF="function.array-diff.html" ><B CLASS="function" >array_diff()</B ></A > which uses an internal function for comparing the data. </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN11850" ></A ><P ><B >Exemplo 1. <B CLASS="function" >array_udiff()</B > example</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#007700">class </font><font color="#0000BB">cr </font><font color="#007700">{<br /> </font><font color="#0000BB">private $priv_member</font><font color="#007700">;<br /> function </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">$val</font><font color="#007700">)<br /> {<br /> </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">priv_member </font><font color="#007700">= </font><font color="#0000BB">$val</font><font color="#007700">;<br /> }<br /><br /> function </font><font color="#0000BB">comp_func_cr</font><font color="#007700">(</font><font color="#0000BB">$a</font><font color="#007700">, </font><font color="#0000BB">$b</font><font color="#007700">)<br /> {<br /> if (</font><font color="#0000BB">$a</font><font color="#007700">-></font><font color="#0000BB">priv_member </font><font color="#007700">=== </font><font color="#0000BB">$b</font><font color="#007700">-></font><font color="#0000BB">priv_member</font><font color="#007700">) return </font><font color="#0000BB">0</font><font color="#007700">;<br /> return (</font><font color="#0000BB">$a</font><font color="#007700">-></font><font color="#0000BB">priv_member </font><font color="#007700">> </font><font color="#0000BB">$b</font><font color="#007700">-></font><font color="#0000BB">priv_member</font><font color="#007700">)? </font><font color="#0000BB">1</font><font color="#007700">:-</font><font color="#0000BB">1</font><font color="#007700">;<br /> }<br />}<br /></font><font color="#0000BB">$a </font><font color="#007700">= array(</font><font color="#DD0000">"0.1" </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">9</font><font color="#007700">), </font><font color="#DD0000">"0.5" </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">12</font><font color="#007700">), </font><font color="#0000BB">0 </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">23</font><font color="#007700">), </font><font color="#0000BB">1</font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">4</font><font color="#007700">), </font><font color="#0000BB">2 </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(-</font><font color="#0000BB">15</font><font color="#007700">),);<br /></font><font color="#0000BB">$b </font><font color="#007700">= array(</font><font color="#DD0000">"0.2" </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">9</font><font color="#007700">), </font><font color="#DD0000">"0.5" </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">22</font><font color="#007700">), </font><font color="#0000BB">0 </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">3</font><font color="#007700">), </font><font color="#0000BB">1</font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(</font><font color="#0000BB">4</font><font color="#007700">), </font><font color="#0000BB">2 </font><font color="#007700">=> new </font><font color="#0000BB">cr</font><font color="#007700">(-</font><font color="#0000BB">15</font><font color="#007700">),);<br /><br /></font><font color="#0000BB">$result </font><font color="#007700">= </font><font color="#0000BB">array_udiff</font><font color="#007700">(</font><font color="#0000BB">$a</font><font color="#007700">, </font><font color="#0000BB">$b</font><font color="#007700">, array(</font><font color="#DD0000">"cr"</font><font color="#007700">, </font><font color="#DD0000">"comp_func_cr"</font><font color="#007700">));<br /></font><font color="#0000BB">print_r</font><font color="#007700">(</font><font color="#0000BB">$result</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P >O exemplo acima irá imprimir:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >Array ( [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using <TT CLASS="literal" >array_udiff($array1[0], $array2[0], "data_compare_func");</TT >. </P ></BLOCKQUOTE ></DIV ><P > See also <A HREF="function.array-diff.html" ><B CLASS="function" >array_diff()</B ></A >, <A HREF="function.array-diff-assoc.html" ><B CLASS="function" >array_diff_assoc()</B ></A >, <A HREF="function.array-diff-uassoc.html" ><B CLASS="function" >array_diff_uassoc()</B ></A >, <A HREF="function.array-udiff-assoc.html" ><B CLASS="function" >array_udiff_assoc()</B ></A >, <A HREF="function.array-udiff-uassoc.html" ><B CLASS="function" >array_udiff_uassoc()</B ></A >, <A HREF="function.array-intersect.html" ><B CLASS="function" >array_intersect()</B ></A >, <A HREF="function.array-intersect-assoc.html" ><B CLASS="function" >array_intersect_assoc()</B ></A >, <A HREF="function.array-uintersect.html" ><B CLASS="function" >array_uintersect()</B ></A >, <A HREF="function.array-uintersect-assoc.html" ><B CLASS="function" >array_uintersect_assoc()</B ></A > and <A HREF="function.array-uintersect-uassoc.html" ><B CLASS="function" >array_uintersect_uassoc()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.array-udiff-uassoc.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.array-uintersect-assoc.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >array_udiff_uassoc</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.array.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >array_uintersect_assoc</TD ></TR ></TABLE ></DIV ></BODY ></HTML >