<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.array-column.php',
    1 => 'array_column',
    2 => 'Retorna os valores de uma coluna do array informado',
  ),
  'up' => 
  array (
    0 => 'ref.array.php',
    1 => 'Fun&ccedil;&otilde;es para Array',
  ),
  'prev' => 
  array (
    0 => 'function.array-chunk.php',
    1 => 'array_chunk',
  ),
  'next' => 
  array (
    0 => 'function.array-combine.php',
    1 => 'array_combine',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/array/functions/array-column.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.array-column" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">array_column</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.5.0, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">array_column</span> &mdash; <span class="dc-title">Retorna os valores de uma coluna do array informado</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.array-column-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>array_column</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"><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> <code class="parameter">$column_key</code></span>, <span class="methodparam"><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> <code class="parameter">$index_key</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.array.php" class="type array">array</a></span></div>

  <p class="para rdfs-comment">
   A função <span class="function"><strong>array_column()</strong></span> retorna os valores de uma coluna do
   <code class="parameter">array</code> informado, indentificada pelo
   <code class="parameter">column_key</code>. Opcionalmente, uma
   <code class="parameter">index_key</code> pode ser informada para indexar os valores do
   array retornado pelos valores da coluna <code class="parameter">index_key</code>
   do array.
  </p>
 </div>

 <div class="refsect1 parameters" id="refsect1-function.array-column-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">array</code></dt>
     <dd>
      <p class="para">
       Um array multidimensional ou um array de objetos que se deseja extrair os
       valores da coluna. Se um array de objetos for fornecido, propriedades
       públicas podem ser extraídas diretamente. Para extrair propriedades
       protegidas e privadas, a classe deve implementar ambos os métodos mágicos
       <span class="function"><strong>__get()</strong></span> e
       <span class="function"><strong>__isset()</strong></span>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">column_key</code></dt>
     <dd>
      <p class="para">
       A coluna de valores a ser retornada. Este valor pode ser uma chave inteira da
       coluna que se deseja recuperar, ou uma uma string com o nome da chave de um
       array associativo ou nome de propriedade. Também pode ser <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> para retornar
       arrays completos ou objetos (isso é útil com o parâmetro
       <code class="parameter">index_key</code>, para reindexar o array).
      </p>
     </dd>
    
    
     <dt><code class="parameter">index_key</code></dt>
     <dd>
      <p class="para">
       A coluna a ser utilizada como índices/chaves do array retornado. Este valor
       pode ser uma chave inteira da coluna, ou uma uma string com o nome da chave.
       O valor é <a href="language.types.array.php#language.types.array.key-casts" class="link">convertido</a>
       como de costume para chaves de array (no entanto, antes do PHP 8.0.0, objetos que suportam
       conversão para string também eram permitidos).
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.array-column-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Retorna um array com os valores que representam uma coluna do array informado.
  </p>
 </div>

 <div class="refsect1 changelog" id="refsect1-function.array-column-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versão</th>
       <th>Descrição</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        Objetos em colunas indicadas pelo parâmetro <code class="parameter">index_key</code>
        não serão mais convertidos em string e agora irão lançar um <span class="classname"><a href="class.typeerror.php" class="classname">TypeError</a></span> em vez disso.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 <div class="refsect1 examples" id="refsect1-function.array-column-examples">
  <h3 class="title">Exemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Obtém a coluna first_name dos registros</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Array representando um possível resultado retornado de um banco de dados<br /></span><span style="color: #0000BB">$records </span><span style="color: #007700">= [<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2135</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'John'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Doe'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3245</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Sally'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Smith'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">5342</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Jane'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Jones'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">5623</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Peter'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Doe'</span><span style="color: #007700">,<br />    ]<br />];<br /><br /></span><span style="color: #0000BB">$first_names </span><span style="color: #007700">= </span><span style="color: #0000BB">array_column</span><span style="color: #007700">(</span><span style="color: #0000BB">$records</span><span style="color: #007700">, </span><span style="color: #DD0000">'first_name'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$first_names</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Array
(
    [0] =&gt; John
    [1] =&gt; Sally
    [2] =&gt; Jane
    [3] =&gt; Peter
)</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Exemplo #2 
     Obtém a coluna last_name dos registros, indexados pela coluna &quot;id&quot;
    </strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Usando o array $records do Exemplo #1<br /></span><span style="color: #0000BB">$records </span><span style="color: #007700">= [<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2135</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'John'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Doe'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3245</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Sally'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Smith'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">5342</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Jane'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Jones'</span><span style="color: #007700">,<br />    ],<br />    [<br />        </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">5623</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Peter'</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'last_name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Doe'</span><span style="color: #007700">,<br />    ]<br />];<br /><br /></span><span style="color: #0000BB">$last_names </span><span style="color: #007700">= </span><span style="color: #0000BB">array_column</span><span style="color: #007700">(</span><span style="color: #0000BB">$records</span><span style="color: #007700">, </span><span style="color: #DD0000">'last_name'</span><span style="color: #007700">, </span><span style="color: #DD0000">'id'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$last_names</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Array
(
    [2135] =&gt; Doe
    [3245] =&gt; Smith
    [5342] =&gt; Jones
    [5623] =&gt; Doe
)</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Exemplo #3 
     Obtém a coluna de nomes de usuários da propriedade pública &quot;username&quot; de um
     objeto
    </strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">User<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$username</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">string $username</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">username </span><span style="color: #007700">= </span><span style="color: #0000BB">$username</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$users </span><span style="color: #007700">= [<br />    new </span><span style="color: #0000BB">User</span><span style="color: #007700">(</span><span style="color: #DD0000">'user 1'</span><span style="color: #007700">),<br />    new </span><span style="color: #0000BB">User</span><span style="color: #007700">(</span><span style="color: #DD0000">'user 2'</span><span style="color: #007700">),<br />    new </span><span style="color: #0000BB">User</span><span style="color: #007700">(</span><span style="color: #DD0000">'user 3'</span><span style="color: #007700">),<br />];<br /><br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">array_column</span><span style="color: #007700">(</span><span style="color: #0000BB">$users</span><span style="color: #007700">, </span><span style="color: #DD0000">'username'</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Array
(
    [0] =&gt; user 1
    [1] =&gt; user 2
    [2] =&gt; user 3
)</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-4">
    <p><strong>Exemplo #4 
     Obtém a coluna de nomes da propriedade privada &quot;name&quot; de um objeto
     utilizando os métodos mágicos <span class="function"><strong>__isset()</strong></span> e <span class="function"><strong>__get()</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 /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Person<br /></span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">string $name</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name </span><span style="color: #007700">= </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />    }<br /><br />    public function </span><span style="color: #0000BB">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">$prop</span><span style="color: #007700">)<br />    {<br />        return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$prop</span><span style="color: #007700">;<br />    }<br /><br />    public function </span><span style="color: #0000BB">__isset</span><span style="color: #007700">(</span><span style="color: #0000BB">$prop</span><span style="color: #007700">) : </span><span style="color: #0000BB">bool<br />    </span><span style="color: #007700">{<br />        return isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$prop</span><span style="color: #007700">);<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$people </span><span style="color: #007700">= [<br />    new </span><span style="color: #0000BB">Person</span><span style="color: #007700">(</span><span style="color: #DD0000">'Fred'</span><span style="color: #007700">),<br />    new </span><span style="color: #0000BB">Person</span><span style="color: #007700">(</span><span style="color: #DD0000">'Jane'</span><span style="color: #007700">),<br />    new </span><span style="color: #0000BB">Person</span><span style="color: #007700">(</span><span style="color: #DD0000">'John'</span><span style="color: #007700">),<br />];<br /><br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">array_column</span><span style="color: #007700">(</span><span style="color: #0000BB">$people</span><span style="color: #007700">, </span><span style="color: #DD0000">'name'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Array
(
    [0] =&gt; Fred
    [1] =&gt; Jane
    [2] =&gt; John
)</pre>
</div>
    </div>
   </div>
   Se o método <span class="function"><strong>__isset()</strong></span> não for fornecido, um array vazio será
   retornado.
  </p>
 </div>


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