<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.16 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.110 -->
<refentry xml:id="function.array" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>array</refname>
  <refpurpose>Create an array</refpurpose>
 </refnamediv>
 <refsect1>
  <title>Description</title>
  <methodsynopsis>
   <type>array</type><methodname>array</methodname>
   <methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
  </methodsynopsis>
  <para>
   Returns an array of the parameters.  The parameters can be given
   an index with the <literal>=&gt;</literal> operator.  Read the section
   on the <link linkend="language.types.array">array type</link> for more
   information on what an array is.
  </para>
  <para>
   <note>
    <para>
     <function>array</function> is a language construct used to
     represent literal arrays, and not a regular function.
    </para>
   </note>
  </para>
  <para>
   Syntax "index =&gt; values", separated by commas, define index
   and values. index may be of type string or integer. When index is
   omitted, an integer index is automatically generated, starting
   at 0. If index is an integer, next generated index will
   be the biggest integer index + 1. Note that when two identical
   index are defined, the last overwrite the first.
  </para>
  <para>
   Having a trailing comma after the last defined array entry, while
   unusual, is a valid syntax.
  </para>
  <para>
   The following example demonstrates how to create a
   two-dimensional array, how to specify keys for associative
   arrays, and how to skip-and-continue numeric indices in normal
   arrays.
   <example>
    <title><function>array</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   <example>
    <title>Automatic index with <function>array</function></title>
    <programlisting role="php">
<![CDATA[
<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen role="php">
<![CDATA[
Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)
]]>
    </screen>
   </example>
  </para>
  <para>
   Note that index '3' is defined twice, and keep its final value of 13.
   Index 4 is defined after index 8, and next generated index (value 19)
   is 9, since biggest index was 8.
  </para>
  <para>
   This example creates a 1-based array.
   <example>
    <title>1-based index with <function>array</function></title>
    <programlisting role="php">
<![CDATA[
<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
Array
(
    [1] => January
    [2] => February
    [3] => March
)
]]>
    </screen>
   </example>
  </para>
  <para>
   As in Perl, you can access a value from the array inside double quotes.
   However, with PHP you'll need to enclose your array between curly braces.
   <example>
    <title>Accessing an array inside double quotes</title>
    <programlisting role="php">
<![CDATA[
<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   See also <function>array_pad</function>,
   <function>list</function>,
   <function>count</function>,
   <link linkend="control-structures.foreach">foreach</link>, and
   <function>range</function>.
  </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:"../../../../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
-->