<?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-rand.php',
    1 => 'array_rand',
    2 => 'Liefert einen oder mehrere zuf&auml;llige Schl&uuml;ssel eines Arrays',
  ),
  'up' => 
  array (
    0 => 'ref.array.php',
    1 => 'Array Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.array-push.php',
    1 => 'array_push',
  ),
  'next' => 
  array (
    0 => 'function.array-reduce.php',
    1 => 'array_reduce',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/array/functions/array-rand.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.array-rand" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">array_rand</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">array_rand</span> &mdash; <span class="dc-title">Liefert einen oder mehrere zufällige Schlüssel eines Arrays</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.array-rand-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>array_rand</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.integer.php" class="type int">int</a></span> <code class="parameter">$num</code><span class="initializer"> = 1</span></span>): <span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span></span></div>

  <p class="para rdfs-comment">
   Wählt einen oder mehrere Einträge aus einem Array aus und gibt den
   Schlüssel des zufälligen Eintrags bzw. die Schlüssel der zufälligen
   Einträge zurück.
  </p>
  <div class="caution"><strong class="caution">Achtung</strong>
 <p class="para">
  Diese Funktion erzeugt keine kryptografisch sicheren Werte und
  <em>darf nicht</em> für kryptografische Zwecke verwendet werden
  oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein
  dürfen.
 </p>
 <p class="para">
  Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der
  <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> mit der
  <span class="classname"><a href="class.random-engine-secure.php" class="classname">Random\Engine\Secure</a></span>-Engine verwendet werden. Für
  einfache Anwendungsfälle bieten die Funktionen <span class="function"><a href="function.random-int.php" class="function">random_int()</a></span>
  und <span class="function"><a href="function.random-bytes.php" class="function">random_bytes()</a></span> eine bequeme und sichere
  <abbr title="Application Programming Interface">API</abbr>, die den <abbr title="Cryptographically Secure PseudoRandom Number Generator">CSPRNG</abbr> des
  Betriebssystems verwendet.
 </p>
</div>
  <div class="caution"><strong class="caution">Achtung</strong>
 <p class="simpara">
    This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937.
    Using any of these functions advances the sequence for <em>all</em> the other functions, regardless of scope.
  </p>
  <p class="simpara">
    Generating repeatable sequences by seeding <span class="function"><a href="function.mt-srand.php" class="function">mt_srand()</a></span> or <span class="function"><a href="function.srand.php" class="function">srand()</a></span> with a known value will also yield repeatable output from this function.
  </p>
  <p class="simpara">
    Prefer using <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> methods in all newly written code.
 </p>
</div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.array-rand-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; darf nicht leer sein
      </p>
     </dd>
    
    
     <dt><code class="parameter">num</code></dt>
     <dd>
      <p class="para">
       Gibt an, wie viele Einträge ausgewählt werden sollen; muss größer als
       Null und kleiner oder gleich der Länge von <code class="parameter">array</code>
       sein
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.array-rand-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Wenn nur ein Eintrag ausgewählt wird, gibt <span class="function"><strong>array_rand()</strong></span>
   den Schlüssel eines zufälligen Eintrages zurück. Andernfalls wird ein Array
   mit den Schlüsseln der zufälligen Einträge zurückgegeben. Dies hat den
   Zweck, dass zufällige Schlüssel und auch Werte aus dem Array ausgewählt
   werden können. Wenn mehrere Schlüssel zurückgegeben werden, werden sie in
   der Reihenfolge zurückgegeben, in der sie im ursprünglichen Array
   vorliegen.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.array-rand-errors">
  <h3 class="title">Fehler/Exceptions</h3>
  <p class="para">
   Wenn <code class="parameter">array</code> leer ist oder <code class="parameter">num</code>
   außerhalb des zulässigen Bereichs liegt, wird ein
   <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> geworfen.
  </p>
 </div>


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

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        Wenn <code class="parameter">num</code> außerhalb des zulässigen Bereichs
        liegt, wirft <span class="function"><strong>array_rand()</strong></span> nun einen
        <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>; zuvor wurde ein
        <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> ausgegeben, und die Funktion gab <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>
        zurück.
       </td>
      </tr>

      <tr>
       <td>8.0.0</td>
       <td>
        Wenn <code class="parameter">array</code> leer ist, wirft
        <span class="function"><strong>array_rand()</strong></span> nun einen
        <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>; zuvor wurde ein
        <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> ausgegeben, und die Funktion gab <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>
        zurück.
       </td>
      </tr>

      <tr>
       <td>7.1.0</td>
       <td>
        Zur Erzeugung der Zufallszahlen
        <a href="migration71.incompatible.php#migration71.incompatible.rand-srand-aliases" class="link">kommt intern nun</a>
        der
        <a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html" class="link external">&raquo;&nbsp;Mersenne-Primzahlen</a>-Zufallsgenerator
        statt der vorherigen libc-rand-Funktion zum Einsatz.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.array-rand-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>array_rand()</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 />$input </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"Neo"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Morpheus"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Trinity"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Cypher"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Tank"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$rand_keys </span><span style="color: #007700">= </span><span style="color: #0000BB">array_rand</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$input</span><span style="color: #007700">[</span><span style="color: #0000BB">$rand_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$input</span><span style="color: #007700">[</span><span style="color: #0000BB">$rand_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.array-rand-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="random-randomizer.pickarraykeys.php" class="function" rel="rdfs-seeAlso">Random\Randomizer::pickArrayKeys()</a> - Select random array keys</span></li>
    <li><span class="function"><a href="random-randomizer.shufflearray.php" class="function" rel="rdfs-seeAlso">Random\Randomizer::shuffleArray()</a> - Get a permutation of an array</span></li>
   </ul>
  </p>
 </div>


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