1
0
mirror of https://github.com/php/doc-uk.git synced 2026-03-26 08:02:13 +01:00
Files
archived-doc-uk/reference/array/functions/array-map.xml
Костя Третяк e7bc1b268c Init for the Ukrainian translation
git-svn-id: https://svn.php.net/repository/phpdoc/uk/trunk@334875 c90b9560-bf6c-de11-be94-00142212c4b1
2014-09-15 19:39:11 +00:00

373 lines
8.9 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: a0efd60818b767c51af678fd7a62c7521665f35d Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.array-map">
<refnamediv>
<refname>array_map</refname>
<refpurpose>Застосовує зворотній виклик до всіх елементів зазначених масивів</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_map</methodname>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
<methodparam><type>array</type><parameter>array1</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_map</function> повертає масив, що вміщує всі елементи
<parameter>array1</parameter> після застосування
<parameter>callback</parameter>-функції до кожного елемента. Кількість параметрів,
які приймає <parameter>callback</parameter>-функція повинна
відповідати кількості масивів переданих до <function>array_map</function>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Callback-функція, що запускається для кожного елемента в кожному з переданих масивів.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>array1</parameter></term>
<listitem>
<para>
Масив, до якого застосовується <parameter>callback</parameter>-функція.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>...</parameter></term>
<listitem>
<para>
Змінний список масива аргументів, до яких застосовується
<parameter>callback</parameter>-функція.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Повертається масив, що містить всі елементи з масива <parameter>array1</parameter>
після застосування <parameter>callback</parameter>-функції до кожного з них.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Використовуючи <function>array_map</function>, піднесення ряду чисел з масива в куб</title>
<programlisting role="php">
<![CDATA[
<?php
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
]]>
</programlisting>
<para>
Це створить <varname>$b</varname>, що має:
</para>
<screen>
<![CDATA[
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Використання <function>array_map</function> разом з lambda-функцією (починаючи з PHP 5.3.0)</title>
<programlisting role="php">
<![CDATA[
<?php
$func = function($value) {
return $value * 2;
};
print_r(array_map($func, range(1, 5)));
?>
]]>
</programlisting>
<screen>
<![CDATA[
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Використання <function>array_map</function> - робота з більшою кількістю масивів</title>
<programlisting role="php">
<![CDATA[
<?php
function show_Spanish($n, $m)
{
return("The number $n is called $m in Spanish");
}
function map_Spanish($n, $m)
{
return(array($n => $m));
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);
$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
// вивід $c
Array
(
[0] => The number 1 is called uno in Spanish
[1] => The number 2 is called dos in Spanish
[2] => The number 3 is called tres in Spanish
[3] => The number 4 is called cuatro in Spanish
[4] => The number 5 is called cinco in Spanish
)
// вивід $d
Array
(
[0] => Array
(
[1] => uno
)
[1] => Array
(
[2] => dos
)
[2] => Array
(
[3] => tres
)
[3] => Array
(
[4] => cuatro
)
[4] => Array
(
[5] => cinco
)
)
]]>
</screen>
</example>
</para>
<para>
Зазвичай при використанні двох або більше масивів, вони мають однакову довжину,
оскільки callback-функція застосовується паралельно до відповідних елементів.
Якщо масиви мають не однакову довжину, кожен із коротших масивів буде доповнено
пустими елементами, щоб відповідати довжині найдовшого із них.
</para>
<para>
Цікаве використання цієї функції для створення масива масивів,
що можна легко зробити за допомогою &null;
в якості імені callback-функції
</para>
<para>
<example>
<title>Створення масива масивів</title>
<programlisting role="php">
<![CDATA[
<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Array
(
[0] => 1
[1] => one
[2] => uno
)
[1] => Array
(
[0] => 2
[1] => two
[2] => dos
)
[2] => Array
(
[0] => 3
[1] => three
[2] => tres
)
[3] => Array
(
[0] => 4
[1] => four
[2] => cuatro
)
[4] => Array
(
[0] => 5
[1] => five
[2] => cinco
)
)
]]>
</screen>
</example>
</para>
<para>
Якщо масив-аргумент містить рядкові ключі, то результуючий
масив буде містити рядкові ключі тоді, і тільки тоді, коли передається
рівно один масив. Якщо передано більше одного аргумента, то результуючий масив
буде завжди мати цілочисельні (integer) ключі.
</para>
<para>
<example>
<title>Використання <function>array_map</function> з рядковими ключами</title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array("stringkey" => "value");
function cb1($a) {
return array ($a);
}
function cb2($a, $b) {
return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
["stringkey"]=>
array(1) {
[0]=>
string(5) "value"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
array(1) {
["stringkey"]=>
string(5) "value"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_filter</function></member>
<member><function>array_reduce</function></member>
<member><function>array_walk</function></member>
<member>&seealso.callback;</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
-->