<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.5 $ --> <!-- 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: <programlisting role="php"> <![CDATA[ array_push ($input, $x, $y) array_splice ($input, count ($input), 0, array ($x, $y)) array_pop ($input) array_splice ($input, -1) array_shift ($input) array_splice ($input, 0, 1) array_unshift ($input, $x, $y) array_splice ($input, 0, 0, array ($x, $y)) $input[$x] = $y array_splice ($input, $x, 1, $y) ]]> </programlisting> </para> <para> Returns the array consisting of removed elements. </para> <para> <example> <title><function>array_splice</function> examples</title> <programlisting role="php"> <![CDATA[ $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") ]]> </programlisting> </example> </para> <para> See also <function>array_slice</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 -->