mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 17:08:54 +00:00
documentation of array_filter, array_map, and array_reduce
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@44368 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
afdabfca5d
commit
a997a184c5
1 changed files with 296 additions and 0 deletions
|
@ -200,6 +200,62 @@ $result = array_diff ($array1, $array2);
|
|||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-filter">
|
||||
<refnamediv>
|
||||
<refname>array_filter</refname>
|
||||
<refpurpose>Filters elements of an array using a callback function</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>array <function>array_filter</function></funcdef>
|
||||
<paramdef>array <parameter>input</parameter></paramdef>
|
||||
<paramdef>mixed
|
||||
<parameter><optional>callback</optional></parameter>
|
||||
</paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
<para>
|
||||
<function>Array_filter</function> returns an array
|
||||
containing all the elements of <parameter>input</parameter>
|
||||
filtered according a callback function. If the
|
||||
<parameter>input</parameter> is an associative array
|
||||
the keys are preserved.
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title><function>Array_filter</function> example</title>
|
||||
<programlisting role="php">
|
||||
function odd($var) {
|
||||
return ($var % 2 == 1);
|
||||
}
|
||||
|
||||
function even($var) {
|
||||
return ($var % 2 == 0);
|
||||
}
|
||||
|
||||
$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
|
||||
$array2 = array (6, 7, 8, 9, 10, 11, 12);
|
||||
|
||||
$odd_arr = array_filter($array1, "odd");
|
||||
$even_arr = array_filter($array2, "even");
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
This makes <varname>$odd_arr</varname> have
|
||||
<literal>array ("a"=>1, "c"=>3, "e"=>5);</literal>,
|
||||
and <varname>$even_arr</varname> have
|
||||
<literal>array (6, 8, 10, 12);</literal>,
|
||||
</para>
|
||||
<para>
|
||||
See also <function>array_map</function>,
|
||||
<function>array_reduce</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-flip">
|
||||
<refnamediv>
|
||||
<refname>array_flip</refname>
|
||||
|
@ -342,6 +398,184 @@ function array_keys ($arr, $term="") {
|
|||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-map">
|
||||
<refnamediv>
|
||||
<refname>array_map</refname>
|
||||
<refpurpose>Applies the callback to the elements of the given arrays</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>array <function>array_map</function></funcdef>
|
||||
<paramdef>mixed <parameter>callback</parameter></paramdef>
|
||||
<paramdef>array <parameter>arr1</parameter></paramdef>
|
||||
<paramdef>array
|
||||
<parameter><optional>arr2...</optional></parameter>
|
||||
</paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
<para>
|
||||
<function>Array_map</function> returns an array
|
||||
containing all the elements of <parameter>arr1</parameter>
|
||||
after applying the callback function to each one.
|
||||
The number of parameters that the callback function accepts should
|
||||
match the number of arrays passed to the <function>array_map</function>
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title><function>Array_map</function> example</title>
|
||||
<programlisting role="php">
|
||||
function cube($n) {
|
||||
return $n*$n*$n;
|
||||
}
|
||||
|
||||
$a = array(1, 2, 3, 4, 5);
|
||||
$b = array_map("cube", $a);
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
This will result in <varname>$b</varname> containing
|
||||
<literal>array (1, 8, 27, 64, 125);</literal>
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title><function>Array_filter</function> - using more arrays</title>
|
||||
<programlisting role="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);
|
||||
|
||||
// will output:
|
||||
// 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_map("map_Spanish", $a , $b);
|
||||
|
||||
print_r($d);
|
||||
|
||||
// will output:
|
||||
// Array
|
||||
// (
|
||||
// [0] => Array
|
||||
// (
|
||||
// [1] => uno
|
||||
// )
|
||||
//
|
||||
// [1] => Array
|
||||
// (
|
||||
// [2] => dos
|
||||
// )
|
||||
//
|
||||
// [2] => Array
|
||||
// (
|
||||
// [3] => tres
|
||||
// )
|
||||
//
|
||||
// [3] => Array
|
||||
// (
|
||||
// [4] => cuatro
|
||||
// )
|
||||
//
|
||||
// [4] => Array
|
||||
// (
|
||||
// [5] => cinco
|
||||
// )
|
||||
//
|
||||
// )
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
Usually when using two or more arrays, they should be of equal length
|
||||
because the callback function is applied in parallel to the corresponding
|
||||
elements.
|
||||
If the arrays are of unequal length, the shortest one will be extended
|
||||
with empty elements.
|
||||
</para>
|
||||
<para>
|
||||
An interesting use of this function is to construct an array of arrays,
|
||||
which can be easily performed by using <literal>null</literal>
|
||||
as the name of the callback function
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title><function>Array_map</function> - creating an array of arrays</title>
|
||||
<programlisting role="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);
|
||||
|
||||
// will output:
|
||||
// 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
|
||||
// )
|
||||
//
|
||||
// )
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
See also <function>array_filter</function>,
|
||||
<function>array_reduce</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-merge">
|
||||
<refnamediv>
|
||||
<refname>array_merge</refname>
|
||||
|
@ -790,6 +1024,68 @@ $result_keyed = array_reverse ($input, TRUE);
|
|||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-reduce">
|
||||
<refnamediv>
|
||||
<refname>array_reduce</refname>
|
||||
<refpurpose>
|
||||
Iteratively reduce the array to a single value using a callback function
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>mixed <function>array_reduce</function></funcdef>
|
||||
<paramdef>array <parameter>input</parameter></paramdef>
|
||||
<paramdef>mixed <parameter>callback</parameter></paramdef>
|
||||
<paramdef>int
|
||||
<parameter><optional>initial</optional></parameter>
|
||||
</paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
<para>
|
||||
<function>Array_reduce</function> applies iteratively the
|
||||
<parameter>callback</parameter> function to the elements of the
|
||||
array <parameter>input</parameter>, so as to reduce the array to
|
||||
a single value. If the optional <parameter>intial</parameter> is
|
||||
avaliable, it will be used at the beginning of the process, or as
|
||||
a final result in case the array is empty.
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title><function>Array_reduce</function> example</title>
|
||||
<programlisting role="php">
|
||||
function rsum($v, $w) {
|
||||
$v += $w;
|
||||
return $v;
|
||||
}
|
||||
|
||||
function rmul($v, $w) {
|
||||
$v *= $w;
|
||||
return $v;
|
||||
}
|
||||
|
||||
$a = array(1, 2, 3, 4, 5);
|
||||
$x = array();
|
||||
$b = array_reduce($a, "rsum");
|
||||
$c = array_reduce($a, "rmul", 10);
|
||||
$d = array_reduce($x, "rsum", 1);
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
This will result in <varname>$b</varname> containing
|
||||
<literal>15</literal>, <varname>$c</varname> containing
|
||||
<literal>1200</literal> (= 1*2*3*4*5*10), and <varname>$d</varname>
|
||||
containing <literal>1</literal>.
|
||||
</para>
|
||||
<para>
|
||||
See also <function>array_filter</function>,
|
||||
<function>array_map</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="function.array-shift">
|
||||
<refnamediv>
|
||||
<refname>array_shift</refname>
|
||||
|
|
Loading…
Reference in a new issue