1
0
mirror of https://github.com/php/doc-pl.git synced 2026-03-25 07:32:14 +01:00
Files
archived-doc-pl/reference/array/functions/array-map.xml
Maciej Sobaczewski 5abef4808f Sync with EN
git-svn-id: https://svn.php.net/repository/phpdoc/pl/trunk@341833 c90b9560-bf6c-de11-be94-00142212c4b1
2017-01-31 08:52:09 +00:00

374 lines
7.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9caf16a8ba22366befab30e1d4d5759a4cd406f3 Maintainer: sobak Status: ready -->
<!-- $Revision$ -->
<!-- CREDITS: leszek -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.array-map">
<refnamediv>
<refname>array_map</refname>
<refpurpose>Stosuje podany callback do elementów podanych tablic</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> zwraca tablicę zawierającą wszystkie
elementy <parameter>array1</parameter> po wykonaniu funkcji
<parameter>callback</parameter> na każdym z nich.
Liczba parametrów przyjmowanych przez <parameter>callback</parameter>
powinna wynosić tyle, ile tablic przekazano do <function>array_map</function>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Funkcja zwrotna do wykonania na każdym elemencie każdej tablicy.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>array1</parameter></term>
<listitem>
<para>
Tablica do przepuszczenia przez podany <parameter>callback</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>...</parameter></term>
<listitem>
<para>
Dalsza lista tablic do przepuszczenia przez funkcję podaną
w argumencie <parameter>callback</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Zwraca tablicę zawierającą wszystkie elementy <parameter>array1</parameter>
po wykonaniu funkcji <parameter>callback</parameter> na każdym z nich.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Przykład użycia <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>
Zmienna b <varname>$b</varname> otrzyma:
</para>
<screen>
<![CDATA[
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>array_map</function> z użyciem funkcji anonimowej (od 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> - większa ilość tablic</title>
<programlisting role="php">
<![CDATA[
<?php
function show_Spanish($n, $m)
{
return("Cyfra $n to po hiszpańsku $m");
}
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[
// printout of $c
Array
(
[0] => Cyfra 1 to po hiszpańsku uno
[1] => Cyfra 2 to po hiszpańsku dos
[2] => Cyfra 3 to po hiszpańsku tres
[3] => Cyfra 4 to po hiszpańsku cuatro
[4] => Cyfra 5 to po hiszpańsku cinco
)
// wypis zmiennej $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>
Zazwyczaj, gdy używa się dwóch lub więcej tablic, powinny one mieć
jednakową długość, ponieważ funkcja zwrotna jest stosowana równolegle
do odpowiadających elementów.
Jeśli tablice nie są równej długości, krótsze zostaną rozszerzone używając
pustych elementów, tak aby ich długość zgadzała się z najdłuższą z tablic.
</para>
<para>
Ciekawym zastosowaniem tej funkcji może być kontrurowanie tablicy tablic,
które może zostać łatwo osiągnięte dzięki użyciu &null; jako nazwy funkcji
zwrotnej
</para>
<para>
<example>
<title>Tworzenie tablicy tablic</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>
Zwracana tablica zachowa klucze tablicy podanej jako argument jeśli i tylko
jeśli przekazany zostanie dokładnie jedna tablica. Jeśli zostanie przekazana
więcej niż jedna tablica, zwrócona tablica otrzyma kolejne klucze numeryczne.
</para>
<para>
<example>
<title><function>array_map</function> - z kluczami tekstowymi</title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array("nazwa" => "wartość");
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) {
["nazwa"]=>
array(1) {
[0]=>
string(5) "wartość"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "wartość"
[1]=>
string(5) "wartość"
}
}
array(1) {
["nazwa"]=>
string(5) "wartość"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "wartość"
[1]=>
string(5) "wartość"
}
}
]]>
</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
-->