<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.10 $ --> <!-- splitted from ./en/functions/array.xml, last change in rev 1.14 --> <refentry id="function.array-splice"> <refnamediv> <refname>array_splice</refname> <refpurpose> Remove a portion of the array and replace it with something else </refpurpose> </refnamediv> <refsect1> <title>Description</title> <methodsynopsis> <type>array</type><methodname>array_splice</methodname> <methodparam><type>array</type><parameter>input</parameter></methodparam> <methodparam><type>int</type><parameter>offset</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>length</parameter></methodparam> <methodparam choice="opt"><type>array</type><parameter> replacement </parameter></methodparam> </methodsynopsis> <para> <function>array_splice</function> removes the elements designated by <parameter>offset</parameter> and <parameter>length</parameter> from the <parameter>input</parameter> array, and replaces them with the elements of the <parameter>replacement</parameter> array, if supplied. It returns an array containing the extracted elements. </para> <para> If <parameter>offset</parameter> is positive then the start of removed portion is at that offset from the beginning of the <parameter>input</parameter> array. If <parameter>offset</parameter> is negative then it starts that far from the end of the <parameter>input</parameter> array. </para> <para> If <parameter>length</parameter> is omitted, removes everything from <parameter>offset</parameter> to the end of the array. If <parameter>length</parameter> is specified and is positive, then that many elements will be removed. If <parameter>length</parameter> is specified and is negative then the end of the removed portion will be that many elements from the end of the array. Tip: to remove everything from <parameter>offset</parameter> to the end of the array when <parameter>replacement</parameter> is also specified, use <literal>count($input)</literal> for <parameter>length</parameter>. </para> <para> If <parameter>replacement</parameter> array is specified, then the removed elements are replaced with elements from this array. If <parameter>offset</parameter> and <parameter>length</parameter> are such that nothing is removed, then the elements from the <parameter>replacement</parameter> array are inserted in the place specified by the <parameter>offset</parameter>. Tip: if the replacement is just one element it is not necessary to put <literal>array()</literal> around it, unless the element is an array itself. </para> <para> The following equivalences hold: <table> <title><function>array_splice</function> equivalents</title> <tgroup cols="2"> <tbody> <row> <entry> array_push($input, $x, $y) </entry> <entry> array_splice($input, count($input), 0, array($x, $y)) </entry> </row> <row> <entry> array_pop($input) </entry> <entry> array_splice($input, -1) </entry> </row> <row> <entry> array_shift($input) </entry> <entry> array_splice($input, 0, 1) </entry> </row> <row> <entry> array_unshift($input, $x, $y) </entry> <entry> array_splice($input, 0, 0, array($x, $y)) </entry> </row> <row> <entry> $a[$x] = $y </entry> <entry> array_splice($input, $x, 1, $y) </entry> </row> </tbody> </tgroup> </table> </para> <para> Returns the array consisting of removed elements. </para> <para> <example> <title><function>array_splice</function> examples</title> <programlisting role="php"> <![CDATA[ <?php $input = array("red", "green", "blue", "yellow"); array_splice($input, 2); // $input is now array("red", "green") $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, -1); // $input is now array("red", "yellow") $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, count($input), "orange"); // $input is now array("red", "orange") $input = array("red", "green", "blue", "yellow"); array_splice($input, -1, 1, array("black", "maroon")); // $input is now array("red", "green", // "blue", "black", "maroon") $input = array("red", "green", "blue", "yellow"); array_splice($input, 3, 0, "purple"); // $input is now array("red", "green", // "blue", "purple", "yellow"); ?> ]]> </programlisting> </example> </para> <para> See also <function>array_slice</function>, <function>unset</function>, and <function>array_merge</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 -->