1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/array/functions/array-splice.xml
Mikhail Alferov 01fd1e80af Update reference/array/functions to En (#1068)
* Update book.xml to en

* Update array-combine.xml to en

* Update array-diff.xml to en

* Update array-fill.xml to en

* Update array-is-list.xml to en

* Update array-map.xml to en

* Update array-merge.xml to en

* Update array-multisort.xml to en

* Update array-pad.xml to en

* Update array-search.xml to en

* Update array-splice.xml to en

* Update array-udiff-uassoc.xml to en

* Update array.xml to en

* Update count.xml to en

* Update current.xml to en

* Update each.xml to en

* Update in-array.xml to en

* Update list.xml to en

* Update next.xml to en

* Update prev.xml to en

* Update usort.xml to en
2025-05-09 09:05:53 +03:00

290 lines
10 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2e60c5134e7a847c99f81eb3f7ecee1f5efeeace Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.array-splice" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_splice</refname>
<refpurpose>Удаляет часть массива и заменяет её новыми элементами</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_splice</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam><type>int</type><parameter>offset</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>replacement</parameter><initializer>[]</initializer></methodparam>
</methodsynopsis>
<para>
Функция удаляет из массива <parameter>array</parameter> элементы,
которые обозначили параметрами <parameter>offset</parameter>
и <parameter>length</parameter>, и заменяет удалённые элементы
элементами массива <parameter>replacement</parameter>, если аргумент передали.
</para>
<note>
<para>
Обратите внимание, числовые ключи в массиве <parameter>array</parameter>
не сохраняются.
</para>
</note>
<note>
<simpara>
Функция <link linkend="language.types.array.casting">приведёт</link> тип
аргумента <parameter>replacement</parameter> к массиву аналогично выражению
<code>(array) $parameter</code>, если передали не массив. Функция ведёт себя
неожиданно при передаче в параметр <parameter>replacement</parameter> объекта
или константы &null;.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Входной массив.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
Функция удалит часть массива с позиции смещения, которую отсчитала от начала массива <parameter>array</parameter>,
если параметр <parameter>offset</parameter> положителен.
</para>
<para>
Функция удалит часть массива с позиции смещения, которую отсчитала от конца массива <parameter>array</parameter>,
если параметр <parameter>offset</parameter> отрицателен.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
Функция удалит каждый элемент от смещения <parameter>offset</parameter> до конца массива,
если параметр <parameter>length</parameter> опустили.
</para>
<para>
Функция удалит столько элементов, сколько указали в параметре <parameter>length</parameter>,
если указали положительное значение.
</para>
<para>
Концом части элементов, которую удалит функция, будет такое количество элементов от конца массива,
которое указали как отрицательное значение параметра <parameter>length</parameter>.
</para>
<para>
Функция не удалит элементы, если для параметра <parameter>length</parameter> установили значение 0.
</para>
<tip>
<para>
Совет: при вызове функции с аргументом <parameter>replacement</parameter>
в аргументе <parameter>length</parameter> передают выражение <code>count($input)</code>,
чтобы удалить из массива элементы от позиции смещения <parameter>offset</parameter> до конца массива.
</para>
</tip>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>replacement</parameter></term>
<listitem>
<para>
Функция заменит удаляемые элементы входного массива элементами массива <parameter>replacement</parameter>,
если массив с элементами замены передали.
</para>
<para>
Функция вставит элементы массива <parameter>replacement</parameter> в место,
которое начинается со смещения <parameter>offset</parameter>,
если передали смещение <parameter>offset</parameter> и длину <parameter>length</parameter>,
с которыми функция ничего не удаляет.
<note>
<para>
Обратите внимание, что ключи массива
<parameter>replacement</parameter> не сохраняются.
</para>
</note>
</para>
<para>
Совет: значение аргумента <parameter>replacement</parameter> передают
без конструкции <literal>array()</literal> или квадратных скобок короткого синтаксиса массивов,
если во входном массиве требуется заменить только одно значение,
если только само значение, которым требуется заменить элемент,
не массив, объект или &null;.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает массив, который состоит из извлечённых элементов.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Параметр <parameter>length</parameter> теперь принимает значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Примеры использования функции <function>array_splice</function></title>
<programlisting role="php">
<![CDATA[
<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(2) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(6) "yellow"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(6) "orange"
}
array(5) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
[2]=>
string(4) "blue"
[3]=>
string(5) "black"
[4]=>
string(6) "maroon"
}
]]>
</screen>
</example>
</para>
<para>
<example>
<title>
Примеры инструкций, которые дают эквивалентный функции
<function>array_splice</function> результат
</title>
<para>
Следующие инструкции эквивалентны:
</para>
<programlisting role="php" annotations="non-interactive">
<![CDATA[
<?php
// Добавить два элемента в массив $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// Удалить последний элемент из массива $input
array_pop($input);
array_splice($input, -1);
// Удалить первый элемент из массива $input
array_shift($input);
array_splice($input, 0, 1);
// Добавить элемент в начало массива $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// Заменить в массиве $input элемент с индексом $x на значение $y
$input[$x] = $y; // Для массивов, в которых ключ равен смещению
array_splice($input, $x, 1, $y);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_merge</function></member>
<member><function>array_slice</function></member>
<member><function>unset</function></member>
</simplelist>
</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
-->