<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.key.php',
    1 => 'key',
    2 => 'Devuelve una clave de un array asociativo',
  ),
  'up' => 
  array (
    0 => 'ref.array.php',
    1 => 'Funciones de Arrays',
  ),
  'prev' => 
  array (
    0 => 'function.in-array.php',
    1 => 'in_array',
  ),
  'next' => 
  array (
    0 => 'function.key-exists.php',
    1 => 'key_exists',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/array/functions/key.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.key" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">key</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">key</span> &mdash; <span class="dc-title">Devuelve una clave de un array asociativo</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.key-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>key</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">$array</code></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.null.php" class="type null">null</a></span></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>key()</strong></span> devuelve la clave actual en el
   array <code class="parameter">array</code>.
  </p>
 </div>

 <div class="refsect1 parameters" id="refsect1-function.key-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">array</code></dt>
     <dd>
      <p class="para">
       El array.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.key-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   La función <span class="function"><strong>key()</strong></span> devuelve simplemente la clave
   del elemento del array que es actualmente apuntado por el puntero
   interno. Esta función no modifica en ningún caso la posición de este puntero.
   Si el puntero interno apunta un elemento situado después del final de la lista
   de elementos, o bien si el array está vacío, la función
   <span class="function"><strong>key()</strong></span> devolverá <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.key-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
 <td>8.1.0</td>
 <td>
  O bien convertir el <span class="type"><a href="language.types.object.php" class="type object">object</a></span> en un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> utilizando <span class="function"><a href="function.get-mangled-object-vars.php" class="function">get_mangled_object_vars()</a></span> primero,
  o utilizar los métodos proporcionados por una clase que implemente <span class="interfacename"><a href="class.iterator.php" class="interfacename">Iterator</a></span>, tal como
  <span class="classname"><a href="class.arrayiterator.php" class="classname">ArrayIterator</a></span>.
 </td>
</tr>

<tr>
 <td>7.4.0</td>
 <td>
  A partir de PHP 7.4.0, las instancias de clases <a href="book.spl.php" class="link">SPL</a> son tratadas como
  objetos vacíos sin propiedades en lugar de llamar al método <span class="interfacename"><a href="class.iterator.php" class="interfacename">Iterator</a></span> con
  el mismo nombre que esta función.
 </td>
</tr>


    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.key-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>key()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$array </span><span style="color: #007700">= array(<br />    </span><span style="color: #DD0000">'fruit1' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'apple'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'fruit2' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'orange'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'fruit3' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'grape'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'fruit4' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'apple'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'fruit5' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'apple'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Este ciclo muestra todas las claves<br />// cuyo valor es "apple"<br /></span><span style="color: #007700">while (</span><span style="color: #0000BB">$fruit_name </span><span style="color: #007700">= </span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$array</span><span style="color: #007700">)) {<br />    if (</span><span style="color: #0000BB">$fruit_name </span><span style="color: #007700">== </span><span style="color: #DD0000">'apple'</span><span style="color: #007700">) {<br />        echo </span><span style="color: #0000BB">key</span><span style="color: #007700">(</span><span style="color: #0000BB">$array</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    }<br />    </span><span style="color: #0000BB">next</span><span style="color: #007700">(</span><span style="color: #0000BB">$array</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">fruit1
fruit4
fruit5</pre>
</div>
    </div>
   </div>
  </p>
 </div>

 <div class="refsect1 seealso" id="refsect1-function.key-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.current.php" class="function" rel="rdfs-seeAlso">current()</a> - Devuelve el elemento actual del array</span></li>
    <li><span class="function"><a href="function.next.php" class="function" rel="rdfs-seeAlso">next()</a> - Avance el puntero interno de un array</span></li>
    <li><span class="function"><a href="function.array-key-first.php" class="function" rel="rdfs-seeAlso">array_key_first()</a> - Recupera la primera clave de un array</span></li>
    <li><a href="control-structures.foreach.php" class="link">foreach</a></li>
   </ul>
  </p>
 </div>

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