File: array-filter.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (145 lines) | stat: -rw-r--r-- 3,550 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.17 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.62 -->
  <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>
     <methodsynopsis>
      <type>array</type><methodname>array_filter</methodname>
      <methodparam><type>array</type><parameter>input</parameter></methodparam>
      <methodparam choice="opt"><type>callback</type><parameter>callback</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>array_filter</function> iterates over each value in
     the <parameter>input</parameter> array passing them to the
     <parameter>callback</parameter> function.  If the <parameter>
     callback</parameter> function returns true, the current
     value from <parameter>input</parameter> is returned into the
     result array.  Array keys are preserved.
    </para>
    <para>
     <example>
      <title><function>array_filter</function> example</title>
      <programlisting role="php">
<![CDATA[
<?php
function odd($var) 
{
    return($var & 1);
}

function even($var) 
{
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
]]>
      </programlisting>
      &example.outputs;
      <screen role="php">
<![CDATA[
Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)
]]>
      </screen>
     </example>
    </para>
    <para>
     Users may not change the array itself from the callback
     function. e.g. Add/delete an element, unset the array that
     <function>array_filter</function> is applied to. If the array
     is changed, the behavior of this function is undefined.
    </para>
    <para>
     If the <parameter>callback</parameter> function is not supplied,
     <function>array_filter</function> will remove all the entries of
     <parameter>input</parameter> that are equal to &false;. See <link
     linkend="language.types.boolean.casting">converting to boolean</link> 
     for more information.
    </para>
    <para>
     <example>
      <title><function>array_filter</function> without
      <parameter>callback</parameter></title>
      <programlisting role="php">
<![CDATA[
<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>
]]>
      </programlisting>
      &example.outputs;
      <screen>
<![CDATA[
Array
(
    [0] => foo
    [2] => -1
)
]]>
      </screen>
     </example>
    </para>
    <para>
     See also <function>array_map</function>,
     <function>array_reduce</function>, and <function>array_walk</function>.
    </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:"../../../../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
-->