<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.array-column" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>array_column</refname>
  <refpurpose>Return the values from a single column in the input array</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>array</type><methodname>array_column</methodname>
   <methodparam><type>array</type><parameter>array</parameter></methodparam>
   <methodparam><type>mixed</type><parameter>column_key</parameter></methodparam>
   <methodparam choice="opt"><type>mixed</type><parameter>index_key</parameter><initializer>null</initializer></methodparam>
  </methodsynopsis>
  <para>
   <function>array_column</function> returns the values from a single column of
   the <parameter>array</parameter>, identified by the
   <parameter>column_key</parameter>. Optionally, you may provide an
   <parameter>index_key</parameter> to index the values in the returned array by
   the values from the <parameter>index_key</parameter> column in the input
   array.
  </para>
 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>array</parameter></term>
     <listitem>
      <para>
       A multi-dimensional array (record set) from which to pull a column of
       values.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>column_key</parameter></term>
     <listitem>
      <para>
       The column of values to return. This value may be the integer key of the
       column you wish to retrieve, or it may be the string key name for an
       associative array. It may also be &null; to return complete arrays
       (useful together with <parameter>index_key</parameter> to reindex the
       array).
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>index_key</parameter></term>
     <listitem>
      <para>
       The column to use as the index/keys for the returned array. This value
       may be the integer key of the column, or it may be the string key name.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns an array of values representing a single column from the input array.
  </para>
 </refsect1>
 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Get column of first names from recordset</title>
    <programlisting role="php">
<![CDATA[
<?php
// Array representing a possible record set returned from a database
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);
 
$first_names = array_column($records, 'first_name');
print_r($first_names);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen role="php">
<![CDATA[
Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)
]]>
    </screen>
   </example>
  </para>
  <para>
   <example>
    <title>
     Get column of last names from recordset, indexed by the "id" column
    </title>
    <programlisting role="php">
<![CDATA[
<?php
// Using the $records array from Example #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen role="php">
<![CDATA[
Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)
]]>
    </screen>
   </example>
  </para>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->