Skip to content

Commit 0819b55

Browse files
committed
Simplify array_replace description and add nested array example
php/doc-en@5cc10e8
1 parent 4a0bf07 commit 0819b55

File tree

1 file changed

+54
-21
lines changed

1 file changed

+54
-21
lines changed

reference/array/functions/array-replace.xml

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: fea4357a0ced6a776a2db2ef0d4c09c39ad41ae1 Maintainer: takagi Status: ready -->
3+
<!-- EN-Revision: 5cc10e8d90a9d0cbb35779b60580e772e7d660a1 Maintainer: takagi Status: ready -->
44
<refentry xml:id="function.array-replace" xmlns="http://docbook.org/ns/docbook">
55
<refnamediv>
66
<refname>array_replace</refname>
@@ -14,19 +14,14 @@
1414
<methodparam rep="repeat"><type>array</type><parameter>replacements</parameter></methodparam>
1515
</methodsynopsis>
1616
<para>
17-
<function>array_replace</function> は、
18-
<parameter>array</parameter> の値をそれ以降の配列の同じ要素の値で置き換えます。
19-
最初の配列のキーと同じキーが 2 番目の配列にあれば、
20-
2 番目の配列の値が最初の配列の値を上書きします。
21-
2 番目の配列に存在するキーが最初の配列に存在しなければ、
22-
そのキーが新たに最初の配列内に作られます。
23-
最初の配列にしか存在しないキーについては何も変わりません。
24-
置き換え用の配列が複数渡された場合は渡した順に処理を行い、
25-
後から渡した配列の値のほうが優先されます。
17+
<function>array_replace</function> は、新しい配列を生成し、
18+
指定された配列のそれぞれのキーを新しい配列の要素として割り当てます。
19+
同じキーが複数の配列に存在した場合、
20+
一番最後に指定された配列のものが使われます。
2621
</para>
2722
<para>
28-
<function>array_replace</function> は再起的な処理を行いません。
29-
2 番目の配列の値がどんな型であっても、最初の配列の値を置き換えます
23+
<function>array_replace</function> は再帰的に要素を処理しませんが、
24+
置き換えを行うときに、それぞれのキーの値全体を置き換えます
3025
</para>
3126
</refsect1>
3227
<refsect1 role="parameters">
@@ -72,21 +67,59 @@ $replacements = array(0 => "pineapple", 4 => "cherry");
7267
$replacements2 = array(0 => "grape");
7368
7469
$basket = array_replace($base, $replacements, $replacements2);
75-
print_r($basket);
70+
var_dump($basket);
7671
?>
7772
]]>
7873
</programlisting>
7974
&example.outputs;
8075
<screen role="php">
8176
<![CDATA[
82-
Array
83-
(
84-
[0] => grape
85-
[1] => banana
86-
[2] => apple
87-
[3] => raspberry
88-
[4] => cherry
89-
)
77+
array(5) {
78+
[0]=>
79+
string(5) "grape"
80+
[1]=>
81+
string(6) "banana"
82+
[2]=>
83+
string(5) "apple"
84+
[3]=>
85+
string(9) "raspberry"
86+
[4]=>
87+
string(6) "cherry"
88+
}
89+
]]>
90+
91+
</screen>
92+
</example>
93+
<example>
94+
<title>ネストした配列を、どのように処理するかを示す例</title>
95+
<programlisting role="php">
96+
<![CDATA[
97+
<?php
98+
$base = [ 'citrus' => [ 'orange', 'lemon' ], 'pome' => [ 'apple' ] ];
99+
$replacements = [ 'citrus' => [ 'grapefruit' ] ];
100+
$replacements2 = [ 'citrus' => [ 'kumquat', 'citron' ], 'pome' => [ 'loquat' ] ];
101+
$basket = array_replace($base, $replacements, $replacements2);
102+
var_dump($basket);
103+
?>
104+
]]>
105+
</programlisting>
106+
&example.outputs;
107+
<screen role="php">
108+
<![CDATA[
109+
array(2) {
110+
["citrus"]=>
111+
array(2) {
112+
[0]=>
113+
string(7) "kumquat"
114+
[1]=>
115+
string(6) "citron"
116+
}
117+
["pome"]=>
118+
array(1) {
119+
[0]=>
120+
string(6) "loquat"
121+
}
122+
}
90123
]]>
91124
</screen>
92125
</example>

0 commit comments

Comments
 (0)