-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy patharray-walk-recursive.xml
executable file
·154 lines (147 loc) · 4.14 KB
/
array-walk-recursive.xml
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
146
147
148
149
150
151
152
153
154
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cec5275f23d2db648df30a5702b378044431be97 Maintainer: HonestQiao Status: ready -->
<!-- CREDITS: Luffy -->
<refentry xml:id="function.array-walk-recursive" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_walk_recursive</refname>
<refpurpose>对数组中的每个成员递归地应用用户函数</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>true</type><methodname>array_walk_recursive</methodname>
<methodparam><type class="union"><type>array</type><type>object</type></type><parameter role="reference">array</parameter></methodparam>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>arg</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
将用户自定义函数 <parameter>callback</parameter> 应用到
<parameter>array</parameter> 数组中的每个单元。本函数会递归到更深层的数组中去。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
输入的数组。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
典型情况下
<parameter>callback</parameter> 接受两个参数。<parameter>array</parameter>
参数的值作为第一个,键名作为第二个。
</para>
<note>
<para>
如果 <parameter>callback</parameter> 需要直接作用于数组中的值,则给
<parameter>callback</parameter> 的第一个参数指定为<link linkend="language.references">引用</link>。这样任何对这些单元的改变也将会改变原始数组本身。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>arg</parameter></term>
<listitem>
<para>
如果提供了可选参数
<parameter>arg</parameter>,将被作为第三个参数传递给 <parameter>callback</parameter>。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.true.always;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&return.type.true;
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>array_walk_recursive</function> 例子</title>
<programlisting role="php">
<![CDATA[
<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');
function test_print($item, $key)
{
echo "$key holds $item\n";
}
array_walk_recursive($fruits, 'test_print');
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
a holds apple
b holds banana
sour holds lemon
]]>
</screen>
<para>
注意上例中的键 '<literal>sweet</literal>' 并没有显示出来。任何其值为 <type>array</type> 的键都不会被传递到回调函数中去。
</para>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_walk</function></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
-->