Files
php-doc-ru/reference/array/functions/array-merge.xml
Mikhail Alferov b8a5474ba1 Обновление перевода (#907)
Co-authored-by: Sergey Panteleev <sergey@php.net>
2024-02-14 13:07:06 +03:00

239 lines
6.5 KiB
XML
Raw 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: 9e0f03ac354d797d1d16c0fcc1663e5e170f2727 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.array-merge" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_merge</refname>
<refpurpose>Сливает один или несколько массивов</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_merge</methodname>
<methodparam rep="repeat"><type>array</type><parameter>arrays</parameter></methodparam>
</methodsynopsis>
<para>
Функция сливает элементы одного или нескольких массивов так, что
значения одного добавляются в конец предыдущего.
Функция возвращает результирующий массив.
</para>
<para>
Если входные массивы содержат одинаковые строковые ключи,
то каждое следующее значение ключа перезапишет предыдущее.
Однако, если массивы содержат одинаковые числовые ключи, следующее
значение <emphasis role="strong">не перезапишет</emphasis> исходное,
а будет добавлено в конец массива.
</para>
<para>
Функция перенумерует в результирующем массиве значения входных массивов
с числовыми ключами возрастающими ключами, начиная с нуля.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>arrays</parameter></term>
<listitem>
<para>
Список массивов для слияния.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает результирующий массив.
Без аргументов функция возвращает пустой массив (&array;).
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.4.0</entry>
<entry>
Теперь функция умеет работать без аргументов.
Раньше требовался хотя бы один аргумент.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>array_merge</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Простой пример использования функции <function>array_merge</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
]]>
</programlisting>
<para>
Помните, что числовые ключи будут перенумерованы!
</para>
<screen role="php">
<![CDATA[
Array
(
[0] => data
)
]]>
</screen>
<para>
Чтобы добавить элементы второго массива в первый без
перезаписи элементов первого массива и без переиндексации,
используйте оператор объединения массивов <literal>+</literal>:
</para>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>
]]>
</programlisting>
<para>
Функция сохранит ключи первого массива. Если оба массива
содержат одинаковый ключ, то функция возьмёт элемент
первого массива, а элемент второго проигнорирует.
</para>
<screen role="php">
<![CDATA[
array(5) {
[0]=>
string(6) "zero_a"
[2]=>
string(5) "two_a"
[3]=>
string(7) "three_a"
[1]=>
string(5) "one_b"
[4]=>
string(6) "four_b"
}
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Пример использования функции <function>array_merge</function> не с массивами</title>
<programlisting role="php">
<![CDATA[
<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array) $beginning, (array) $end);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
[0] => foo
[1] => bar
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_merge_recursive</function></member>
<member><function>array_replace</function></member>
<member><function>array_combine</function></member>
<member><link linkend="language.operators.array">Операторы, работающие с массивами</link></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
-->