<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.array.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.array-udiff-assoc.php',
    1 => 'array_udiff_assoc',
    2 => 'Ermittelt den Unterschied zwischen Arrays mit zus&auml;tzlicher
   Indexpr&uuml;fung, vergleicht mittels einer Callbackfunktion',
  ),
  'up' => 
  array (
    0 => 'ref.array.php',
    1 => 'Array Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.array-udiff.php',
    1 => 'array_udiff',
  ),
  'next' => 
  array (
    0 => 'function.array-udiff-uassoc.php',
    1 => 'array_udiff_uassoc',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/array/functions/array-udiff-assoc.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.array-udiff-assoc" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">array_udiff_assoc</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">array_udiff_assoc</span> &mdash; <span class="dc-title">Ermittelt den Unterschied zwischen Arrays mit zusätzlicher
   Indexprüfung, vergleicht mittels einer Callbackfunktion</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.array-udiff-assoc-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>array_udiff_assoc</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$array</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">...$arrays</code></span>, <span class="methodparam"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$value_compare_func</code></span>): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>

  <p class="para rdfs-comment">
   Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung,
   vergleicht mittels einer Callbackfunktion.
  </p>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Bitte beachten Sie, dass diese Funktion nur eine Dimension eines
    n-dimensionalen Arrays überprüft. Natürlich können Sie tiefere Dimensionen
    prüfen, indem Sie
    <code class="literal">array_udiff_assoc($array1[0], $array2[0], &quot;data_compare_func&quot;);</code>
    verwenden.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.array-udiff-assoc-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">array</code></dt>
     <dd>
      <p class="para">
       Das erste Array.
      </p>
     </dd>
    
    
     <dt><code class="parameter">arrays</code></dt>
     <dd>
      <p class="para">
       Arrays zum Vergleichen.
      </p>
     </dd>
    
    
     <dt><code class="parameter">value_compare_func</code></dt>
     <dd>
      <p class="para">
 Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.
</p>
<div class="methodsynopsis dc-description"><span class="methodname"><span class="replaceable">callback</span></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$a</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$b</code></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

<div class="caution"><strong class="caution">Achtung</strong>
 <p class="para">
  Wenn die Vergleichsfunktion <em>nicht-ganzzahlige</em> Werte
  zurückgibt, z. B. vom Typ <span class="type"><a href="language.types.float.php" class="type float">float</a></span>, wird der Rückgabewert des
  Callbacks intern in den Typ <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> umgewandelt. Werte wie
  <code class="literal">0.99</code> und <code class="literal">0.1</code> werden also beide in
  einen Integer-Wert von <code class="literal">0</code> umgewandelt, wodurch diese Werte
  als gleichwertig eingestuft werden.
 </p>
</div>
      <div class="caution"><strong class="caution">Achtung</strong>
 <p class="para">
  Das Sortier-Callback muss alle Werte aus allen Arrays in beliebiger
  Reihenfolge verarbeiten, unabhängig von der Reihenfolge, in der sie
  ursprünglich bereitgestellt wurden. Das liegt daran, dass jedes einzelne
  Array zuerst sortiert wird, bevor es mit anderen Arrays verglichen wird.

  Zum Beispiel:
  <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$arrayA </span><span style="color: #007700">= [</span><span style="color: #DD0000">"string"</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$arrayB </span><span style="color: #007700">= [[</span><span style="color: #DD0000">"value" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">]];<br /></span><span style="color: #FF8000">// $item1 und $item2 können "string", 1 oder ["value" =&gt; 1] sein.<br /></span><span style="color: #0000BB">$compareFunc </span><span style="color: #007700">= static function (</span><span style="color: #0000BB">$item1</span><span style="color: #007700">, </span><span style="color: #0000BB">$item2</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$value1 </span><span style="color: #007700">= </span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$item1</span><span style="color: #007700">) ? </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$item1</span><span style="color: #007700">) : (</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$item1</span><span style="color: #007700">) ? </span><span style="color: #0000BB">$item1</span><span style="color: #007700">[</span><span style="color: #DD0000">"value"</span><span style="color: #007700">] : </span><span style="color: #0000BB">$item1</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$value2 </span><span style="color: #007700">= </span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$item2</span><span style="color: #007700">) ? </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$item2</span><span style="color: #007700">) : (</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$item2</span><span style="color: #007700">) ? </span><span style="color: #0000BB">$item2</span><span style="color: #007700">[</span><span style="color: #DD0000">"value"</span><span style="color: #007700">] : </span><span style="color: #0000BB">$item2</span><span style="color: #007700">);<br />    return </span><span style="color: #0000BB">$value1 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$value2</span><span style="color: #007700">;<br />};<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
  </div>

 </p>
</div>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.array-udiff-assoc-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   <span class="function"><strong>array_udiff_assoc()</strong></span> gibt ein <span class="type"><a href="language.types.array.php" class="type array">array</a></span> mit allen Werten von
   <code class="parameter">array</code>, welche in keinem der anderen Argumente
   enthalten sind, zurück. Beachten Sie, dass Schlüssel anders als von
   <span class="function"><a href="function.array-diff.php" class="function">array_diff()</a></span> und <span class="function"><a href="function.array-udiff.php" class="function">array_udiff()</a></span> für
   den Vergleich herangezogen werden. Der Vergleich der Arrayinhalte wird
   von einer benutzerdefinierten Callbackfunktion durchgeführt. In dieser
   Hinsicht ist das Verhalten anders als jenes von
   <span class="function"><a href="function.array-diff-assoc.php" class="function">array_diff_assoc()</a></span>, welche eine eingebaute
   Vergleichsfunktion verwendet.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.array-udiff-assoc-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>array_udiff_assoc()</strong></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">cr </span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">$priv_member</span><span style="color: #007700">;<br />    function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$val</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">priv_member </span><span style="color: #007700">= </span><span style="color: #0000BB">$val</span><span style="color: #007700">;<br />    }<br /><br />    static function </span><span style="color: #0000BB">comp_func_cr</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">)<br />    {<br />        if (</span><span style="color: #0000BB">$a</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">priv_member </span><span style="color: #007700">=== </span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">priv_member</span><span style="color: #007700">) return </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />        return (</span><span style="color: #0000BB">$a</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">priv_member </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">priv_member</span><span style="color: #007700">)? </span><span style="color: #0000BB">1</span><span style="color: #007700">:-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"0.1" </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">9</span><span style="color: #007700">), </span><span style="color: #DD0000">"0.5" </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">12</span><span style="color: #007700">), </span><span style="color: #0000BB">0 </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">23</span><span style="color: #007700">), </span><span style="color: #0000BB">1</span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">4</span><span style="color: #007700">), </span><span style="color: #0000BB">2 </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(-</span><span style="color: #0000BB">15</span><span style="color: #007700">),);<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"0.2" </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">9</span><span style="color: #007700">), </span><span style="color: #DD0000">"0.5" </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">22</span><span style="color: #007700">), </span><span style="color: #0000BB">0 </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">3</span><span style="color: #007700">), </span><span style="color: #0000BB">1</span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(</span><span style="color: #0000BB">4</span><span style="color: #007700">), </span><span style="color: #0000BB">2 </span><span style="color: #007700">=&gt; new </span><span style="color: #0000BB">cr</span><span style="color: #007700">(-</span><span style="color: #0000BB">15</span><span style="color: #007700">),);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">array_udiff_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">, array(</span><span style="color: #DD0000">"cr"</span><span style="color: #007700">, </span><span style="color: #DD0000">"comp_func_cr"</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Array
(
    [0.1] =&gt; cr Object
        (
            [priv_member:private] =&gt; 9
        )

    [0.5] =&gt; cr Object
        (
            [priv_member:private] =&gt; 12
        )

    [0] =&gt; cr Object
        (
            [priv_member:private] =&gt; 23
        )
)</pre>
</div>
    </div>
   </div>
  </p>
  <p class="simpara">
   In unserem Beispiel sehen Sie, dass das  <code class="literal">&quot;1&quot; =&gt; new cr(4)</code>
   Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der
   Funktion auftaucht.
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.array-udiff-assoc-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.array-diff.php" class="function" rel="rdfs-seeAlso">array_diff()</a> - Ermittelt die Unterschiede zwischen Arrays</span></li>
    <li><span class="function"><a href="function.array-diff-assoc.php" class="function" rel="rdfs-seeAlso">array_diff_assoc()</a> - Berechnet den Unterschied zwischen Arrays mit zus&auml;tzlicher Indexpr&uuml;fung</span></li>
    <li><span class="function"><a href="function.array-diff-uassoc.php" class="function" rel="rdfs-seeAlso">array_diff_uassoc()</a> - Berechnet den Unterschied von Arrays mit zus&auml;tzlicher Indexpr&uuml;fung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird</span></li>
    <li><span class="function"><a href="function.array-udiff.php" class="function" rel="rdfs-seeAlso">array_udiff()</a> - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion f&uuml;r
   den Datenvergleich</span></li>
    <li><span class="function"><a href="function.array-udiff-uassoc.php" class="function" rel="rdfs-seeAlso">array_udiff_uassoc()</a> - Ermittelt den Unterschied zwischen Arrays mit zus&auml;tzlicher Indexpr&uuml;fung,
   vergleicht Daten und Indizes mittels einer Callbackfunktion</span></li>
    <li><span class="function"><a href="function.array-intersect.php" class="function" rel="rdfs-seeAlso">array_intersect()</a> - Ermittelt die Schnittmenge von Arrays</span></li>
    <li><span class="function"><a href="function.array-intersect-assoc.php" class="function" rel="rdfs-seeAlso">array_intersect_assoc()</a> - Ermittelt die Schnittmenge von Arrays mit zus&auml;tzlicher Indexpr&uuml;fung</span></li>
    <li><span class="function"><a href="function.array-uintersect.php" class="function" rel="rdfs-seeAlso">array_uintersect()</a> - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion</span></li>
    <li><span class="function"><a href="function.array-uintersect-assoc.php" class="function" rel="rdfs-seeAlso">array_uintersect_assoc()</a> - Ermittelt die Schnittmenge von Arrays mit zus&auml;tzlicher Indexpr&uuml;fung, vergleicht Daten mittels einer Callbackfunktion</span></li>
    <li><span class="function"><a href="function.array-uintersect-uassoc.php" class="function" rel="rdfs-seeAlso">array_uintersect_uassoc()</a> - Ermittelt die Schnittmenge von Arrays mit zus&auml;tzlicher Indexpr&uuml;fung, vergleicht Daten und Schl&uuml;ssel mittels separaten Callbackfunktionen</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>