<?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-walk.php',
    1 => 'array_walk',
    2 => 'Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an',
  ),
  'up' => 
  array (
    0 => 'ref.array.php',
    1 => 'Array Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.array-values.php',
    1 => 'array_values',
  ),
  'next' => 
  array (
    0 => 'function.array-walk-recursive.php',
    1 => 'array_walk_recursive',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/array/functions/array-walk.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.array-walk" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">array_walk</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">array_walk</span> &mdash; <span class="dc-title">Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.array-walk-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>array_walk</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span> <code class="parameter reference">&$array</code></span>, <span class="methodparam"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$arg</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span></div>

  <p class="simpara">
   Wendet die mittels <code class="parameter">callback</code> angegebene
   Benutzerfunktion auf jedes Element von <code class="parameter">array</code>
   an.
  </p>
  <p class="para">
   <span class="function"><strong>array_walk()</strong></span> ist nicht von dem internen
   Arrayzeiger von <code class="parameter">array</code> betroffen.
   <span class="function"><strong>array_walk()</strong></span> geht ungeachtet der Zeigerposition
   das gesamte Array durch.
  </p>
 </div>

 <div class="refsect1 parameters" id="refsect1-function.array-walk-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">array</code></dt>
     <dd>
      <p class="para">
       Das Eingabe-Array.
      </p>
     </dd>
    
    
     <dt><code class="parameter">callback</code></dt>
     <dd>
      <p class="para">
       Typischerweise akzeptiert <code class="parameter">callback</code> zwei
       Parameter. Der Wert von <code class="parameter">array</code> wird als
       erster übergeben, und der Schlüssel/Index als zweiter.
      </p>
      <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
       <p class="para">
        Wenn <code class="parameter">callback</code> direkt mit den Werten des Arrays
        arbeiten soll, muss der erste Parameter von
        <code class="parameter">callback</code> als
        <a href="language.references.php" class="link">Referenz</a> spezifiziert
        werden. Dann werden alle Änderungen an diesen Elementen direkt in dem
        originalen Array durchgeführt.
       </p>
      </p></blockquote>
      <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
       <p class="para">
        Viele interne Funktionen (z. B. <span class="function"><a href="function.strtolower.php" class="function">strtolower()</a></span>)
        erzeugen einen Fehler, wenn mehr als die erwartete Anzahl von
        Parametern übergeben wird; sie sind auch nicht direkt nutzbar als
        <code class="parameter">callback</code>.
       </p>
      </p></blockquote>
      <p class="para">
       Nur die Werte von <code class="parameter">array</code> können geändert werden.
       Die Struktur des Arrays kann nicht geändert werden, d. h. dass der
       Programmierer keine Elemente hinzufügen oder löschen kann und dass
       die Reihenfolge der Elemente nicht geändert werden kann. Falls die
       Callback-Funktion diese Anforderung nicht beachtet, ist das Verhalten
       dieser Funktion nicht definiert und auch nicht vorhersagbar.
      </p>
     </dd>
    
    
     <dt><code class="parameter">arg</code></dt>
     <dd>
      <p class="para">
       Wenn der optionale Parameter <code class="parameter">arg</code> angegeben ist,
       wird er dem Callback <code class="parameter">callback</code> als dritter
       Parameter übergeben.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.array-walk-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt immer <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurück.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.array-walk-errors">
  <h3 class="title">Fehler/Exceptions</h3>
  <p class="para">
   Von PHP 7.1.0 an wird ein <span class="classname"><a href="class.argumentcounterror.php" class="classname">ArgumentCountError</a></span>
   ausgelöst, wenn die <code class="parameter">callback</code>-Funktion mehr als 2
   Parameter benötigt (der Wert und Schlüssel des Array-Elements), oder mehr
   als 3 Parameter, wenn <code class="parameter">arg</code> ebenfalls übergeben wird.
   Zuvor wurde, falls die <code class="parameter">callback</code>-Funktion mehr als 2
   Parameter benötigte, bei jedem Aufruf von <code class="parameter">callback</code>
   durch <span class="function"><strong>array_walk()</strong></span> eine Fehlermeldung der Stufe
   <a href="errorfunc.constants.php" class="link">E_WARNING</a> generiert.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.array-walk-changelog">
  <h3 class="title">Changelog</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Beschreibung</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
 <td>8.2.0</td>
 <td>
  Der Rückgabewert ist nun <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> vorher war es <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>.
 </td>
</tr>

     <tr>
      <td>8.0.0</td>
      <td>
       Wenn die <code class="parameter">callback</code>-Funktion erwartet, dass der
       zweite oder dritte Parameter per Referenz übergeben wird, gibt diese
       Funktion nun einen Fehler der Stufe <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
       aus.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.array-walk-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>array_walk()</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 />$fruits </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"d" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"Zitrone"</span><span style="color: #007700">, </span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"Orange"</span><span style="color: #007700">, </span><span style="color: #DD0000">"b" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"Banane"</span><span style="color: #007700">, </span><span style="color: #DD0000">"c" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"Apfel"</span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">test_alter</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">$item1</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">, </span><span style="color: #0000BB">$prefix</span><span style="color: #007700">)<br />{<br />    </span><span style="color: #0000BB">$item1 </span><span style="color: #007700">= </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$prefix</span><span style="color: #DD0000">: </span><span style="color: #0000BB">$item1</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /><br />function </span><span style="color: #0000BB">test_print</span><span style="color: #007700">(</span><span style="color: #0000BB">$item2</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">)<br />{<br />    echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$key</span><span style="color: #DD0000">. </span><span style="color: #0000BB">$item2</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /><br />echo </span><span style="color: #DD0000">"Vorher ...:\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">array_walk</span><span style="color: #007700">(</span><span style="color: #0000BB">$fruits</span><span style="color: #007700">, </span><span style="color: #DD0000">'test_print'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">array_walk</span><span style="color: #007700">(</span><span style="color: #0000BB">$fruits</span><span style="color: #007700">, </span><span style="color: #DD0000">'test_alter'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Frucht'</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"... und nachher:\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">array_walk</span><span style="color: #007700">(</span><span style="color: #0000BB">$fruits</span><span style="color: #007700">, </span><span style="color: #DD0000">'test_print'</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">Vorher ...:
d. Zitrone
a. Orange
b. Banane
c. Apfel
... und nachher:
d. Frucht: Zitrone
a. Frucht: Orange
b. Frucht: Banane
c. Frucht: Apfel</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Beispiel #2 <span class="function"><strong>array_walk()</strong></span>-Beispiel mit einer anonymen Funktion</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$elements </span><span style="color: #007700">= [</span><span style="color: #DD0000">'a'</span><span style="color: #007700">, </span><span style="color: #DD0000">'b'</span><span style="color: #007700">, </span><span style="color: #DD0000">'c'</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">array_walk</span><span style="color: #007700">(</span><span style="color: #0000BB">$elements</span><span style="color: #007700">, function (</span><span style="color: #0000BB">$value</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">) {<br />  echo </span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">$key</span><span style="color: #007700">}</span><span style="color: #DD0000"> =&gt; </span><span style="color: #007700">{</span><span style="color: #0000BB">$value</span><span style="color: #007700">}</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />});<br /><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">0 =&gt; a
1 =&gt; b
2 =&gt; c</pre>
</div>
    </div>
   </div>
  </p>
 </div>

 <div class="refsect1 seealso" id="refsect1-function.array-walk-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.array-walk-recursive.php" class="function" rel="rdfs-seeAlso">array_walk_recursive()</a> - Wendet eine Benutzerfunktion rekursiv auf jedes Element eines
   Arrays an</span></li>
    <li><span class="function"><a href="function.iterator-apply.php" class="function" rel="rdfs-seeAlso">iterator_apply()</a> - Call a function for every element in an iterator</span></li>
    <li><span class="function"><a href="function.list.php" class="function" rel="rdfs-seeAlso">list()</a> - Weist Variablen zu, als w&auml;ren sie ein Array</span></li>
    <li><span class="function"><a href="function.each.php" class="function" rel="rdfs-seeAlso">each()</a> - Liefert das aktuelle Schl&uuml;ssel-Wert-Paar eines Arrays und r&uuml;ckt den
   Arrayzeiger vor</span></li>
    <li><span class="function"><a href="function.call-user-func-array.php" class="function" rel="rdfs-seeAlso">call_user_func_array()</a> - Call a callback with an array of parameters</span></li>
    <li><span class="function"><a href="function.array-map.php" class="function" rel="rdfs-seeAlso">array_map()</a> - Wendet eine Callback-Funktion auf die Elemente von Arrays an</span></li>
    <li><a href="control-structures.foreach.php" class="link"><code class="literal">foreach</code></a></li>
   </ul>
  </p>
 </div>


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