function.array-walk.html 12.1 KB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Wendet eine Benutzerfunktion auf jedem Element eines Arrays an</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.array-walk-recursive.html">array_walk_recursive</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.array.html">array</a></div>
 <div class="up"><a href="ref.array.html">Array Funktionen</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="function.array-walk" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">array_walk</h1>
  <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">array_walk</span> &mdash; <span class="dc-title">Wendet eine Benutzerfunktion auf jedem 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="type">bool</span> <span class="methodname"><strong>array_walk</strong></span>
    ( <span class="methodparam"><span class="type">array</span> <code class="parameter reference">&$array</code></span>
   , <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.callback" class="type callback">callback</a></span> <code class="parameter">$funcname</code></span>
   [, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$userdata</code></span>
  ] )</div>

  <p class="simpara">
   Wendet die mittels <code class="parameter">funcname</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">funcname</code></dt>

     <dd>

      <p class="para">
       Typischerweise akzeptiert <code class="parameter">funcname</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">funcname</code> direkt mit den Werten des
        Arrays arbeiten soll, spezifizieren Sie den ersten Parameter
        von <code class="parameter">funcname</code> als <a href="language.references.html" class="link">Referenz</a>. 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 (wie z.B. <span class="function"><a href="function.strtolower.html" class="function">strtolower()</a></span>)
          erzeugen eine Warnung, wenn mehr als die erwartete Anzahl von
          Parametern übergeben wird; sie sind auch nicht direkt nutzbar als
          <code class="parameter">funcname</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 der Verhalten
       dieser Funktion nicht definiert und auch nicht vorhersagbar.
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">userdata</code></dt>

     <dd>

      <p class="para">
       Wenn der optionale Parameter <code class="parameter">userdata</code>
       angegeben ist, wird er als dritter Parameter dem Callback
       <code class="parameter">funcname</code> ü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 bei Erfolg <strong><code>TRUE</code></strong> zurück. Im Fehlerfall wird <strong><code>FALSE</code></strong> zurückgegeben.
  </p>
 </div>

 <div class="refsect1 errors" id="refsect1-function.array-walk-errors">
  <h3 class="title">Fehler/Exceptions</h3>
  <p class="para">
   Sollte die Funktion <code class="parameter">funcname</code> mehr als die
   ihr übergebenen Parameter benötigen, wird bei jedem Aufruf von
   <code class="parameter">funcname</code> durch <span class="function"><strong>array_walk()</strong></span>
   eine Fehlermeldung der Stufe <a href="errorfunc.constants.html" class="link">
   E_WARNING</a> generiert. Diese Warnmeldungen können unterdrückt
   werden, indem man dem Funktionsaufruf von
   <span class="function"><strong>array_walk()</strong></span> den Operator <a href="language.operators.errorcontrol.html" class="link">@</a> voranstellt,
   oder <span class="function"><a href="function.error-reporting.html" class="function">error_reporting()</a></span> verwendet.
  </p>
 </div>

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

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

</div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.array-walk-recursive.html">array_walk_recursive</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.array.html">array</a></div>
 <div class="up"><a href="ref.array.html">Array Funktionen</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>