|
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | 2 | <!-- $Revision$ --> |
3 | | -<!-- EN-Revision: fea4357a0ced6a776a2db2ef0d4c09c39ad41ae1 Maintainer: takagi Status: ready --> |
| 3 | +<!-- EN-Revision: 5cc10e8d90a9d0cbb35779b60580e772e7d660a1 Maintainer: takagi Status: ready --> |
4 | 4 | <refentry xml:id="function.array-replace" xmlns="http://docbook.org/ns/docbook"> |
5 | 5 | <refnamediv> |
6 | 6 | <refname>array_replace</refname> |
|
14 | 14 | <methodparam rep="repeat"><type>array</type><parameter>replacements</parameter></methodparam> |
15 | 15 | </methodsynopsis> |
16 | 16 | <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 | + 一番最後に指定された配列のものが使われます。 |
26 | 21 | </para> |
27 | 22 | <para> |
28 | | - <function>array_replace</function> は再起的な処理を行いません。 |
29 | | - 2 番目の配列の値がどんな型であっても、最初の配列の値を置き換えます。 |
| 23 | + <function>array_replace</function> は再帰的に要素を処理しませんが、 |
| 24 | + 置き換えを行うときに、それぞれのキーの値全体を置き換えます。 |
30 | 25 | </para> |
31 | 26 | </refsect1> |
32 | 27 | <refsect1 role="parameters"> |
@@ -72,21 +67,59 @@ $replacements = array(0 => "pineapple", 4 => "cherry"); |
72 | 67 | $replacements2 = array(0 => "grape"); |
73 | 68 |
|
74 | 69 | $basket = array_replace($base, $replacements, $replacements2); |
75 | | -print_r($basket); |
| 70 | +var_dump($basket); |
76 | 71 | ?> |
77 | 72 | ]]> |
78 | 73 | </programlisting> |
79 | 74 | &example.outputs; |
80 | 75 | <screen role="php"> |
81 | 76 | <![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 | +} |
90 | 123 | ]]> |
91 | 124 | </screen> |
92 | 125 | </example> |
|
0 commit comments