hirokawa Sun Dec 30 20:09:52 2001 EDT
Modified files:
/phpdoc/ja/functions array.xml
Log:
translation updated.
Index: phpdoc/ja/functions/array.xml
diff -u phpdoc/ja/functions/array.xml:1.36 phpdoc/ja/functions/array.xml:1.37
--- phpdoc/ja/functions/array.xml:1.36 Wed Dec 12 15:52:43 2001
+++ phpdoc/ja/functions/array.xml Sun Dec 30 20:09:52 2001
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- $Revision: 1.36 $ -->
+<!-- $Revision: 1.37 $ -->
<reference id="ref.array">
<title>配列関数(array)</title>
<titleabbrev>Arrays</titleabbrev>
@@ -36,7 +36,9 @@
<funcsynopsis>
<funcprototype>
<funcdef>array <function>array</function></funcdef>
- <varargs/>
+ <paramdef>mixed
+ <parameter><optional>...</optional></parameter>
+ </paramdef>
</funcprototype>
</funcsynopsis>
<para>
@@ -65,11 +67,13 @@
<example>
<title><function>array</function>の例</title>
<programlisting role="php">
+<![CDATA[
$fruits = array (
"fruits" => array("a"=>"orange", "b"=>"banana", "c"=>"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
+]]>
</programlisting>
</example>
</para>
@@ -77,13 +81,15 @@
<example>
<title><function>array</function> における自動インデックス</title>
<programlisting role="php">
+<![CDATA[
$array = array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13);
print_r($array);
+]]>
</programlisting>
- </example>
- この例の出力は次のようになります。
- <informalexample>
- <programlisting>
+ <para>
+ この例の出力は次のようになります。
+ <screen role="php">
+<![CDATA[
Array
(
[0] => 1
@@ -94,8 +100,10 @@
[8] => 1
[9] => 19
)
- </programlisting>
- </informalexample>
+]]>
+ </screen>
+ </para>
+ </example>
インデックス '3' は二度定義されており、後の値 13
が保持されること
に注意して下さい。インデックス 4 はインデックス 8
の後に定義され、
次に生成されるインデックス(値は19)は、最大のインデックスが
8 であ
@@ -106,27 +114,83 @@
<example>
<title><function>array</function> で1から始まる配列を作成</title>
<programlisting role="php">
- $firstquarter = array(1 => 'January', 'February', 'March');
- print_r($firstquarter);
+<![CDATA[
+$firstquarter = array(1 => 'January', 'February', 'March');
+print_r($firstquarter);
+]]>
</programlisting>
- </example>
- この例の出力は次のようになります。
- <informalexample>
- <programlisting>
+ <para>
+ この例の出力は次のようになります。
+ <screen>
+<![CDATA[
Array
(
- [1] => 'January'
- [2] => 'February'
- [3] => 'March'
+ [1] => 'January'
+ [2] => 'February'
+ [3] => 'March'
)
- </programlisting>
- </informalexample>
+]]>
+ </screen>
+ </para>
+ </example>
</para>
<para>
- <function>list</function>も参照下さい。
+ <function>array_pad</function>, <function>list</function>,
+ <function>range</function>も参照下さい。
</para>
</refsect1>
</refentry>
+
+ <refentry id="function.array-change-key-case">
+ <refnamediv>
+ <refname>array_change_key_case</refname>
+ <refpurpose>
+ 配列のキーを全て小文字または大文字にして返す
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>説明</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>array <function>array_change_key_case</function></funcdef>
+ <paramdef>array <parameter>input</parameter></paramdef>
+ <paramdef>int
+ <parameter><optional>case</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>array_change_key_case</function> は、配列
+
+<parameter>input</parameter>のキーを全て小文字または大文字にします。
+
+変更は、オプションの最後のパラメータ<parameter>case</parameter>に依存
+
+します。ここには、二つの定数<constant>CASE_UPPER</constant>および
+ <constant>CASE_LOWER</constant>を指定可能です。デフォルトは、
+
+<constant>CASE_LOWER</constant>です。この関数は数値添字はそのままに
+ します。
+ </para>
+ <example>
+ <title><function>array_change_key_case</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
+$input_array = array("FirSt" => 1, "SecOnd" => 4);
+print_r(array_change_key_case($input_array, CASE_UPPER);
+]]>
+ </programlisting>
+ <para>
+ 上のプログラムの出力は以下のようになります。
+ <screen>
+<![CDATA[
+Array
+(
+ [FIRST] => 1
+ [SECOND] => 2
+)
+]]>
+ </screen>
+ </para>
+ </example>
+ </refsect1>
+ </refentry>
<refentry id="function.array-chunk">
<refnamediv>
@@ -158,18 +222,19 @@
可能です。&false;を指定した場合、返される各配列ではゼロから始まる
新しい添字が使用されます。デフォルトは、&false;です。
</para>
- <para>
- <example>
- <title><function>array_chunk</function> の例</title>
- <programlisting role="php">
+ <example>
+ <title><function>array_chunk</function> の例</title>
+ <programlisting role="php">
+<![CDATA[
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, TRUE));
- </programlisting>
- </example>
- 上のプログラムの出力は以下のようになります。
- <informalexample>
- <programlisting>
+]]>
+ </programlisting>
+ <para>
+ 上のプログラムの出力は以下のようになります。
+ <screen>
+<![CDATA[
Array
(
[0] => Array
@@ -210,9 +275,10 @@
)
)
- </programlisting>
- </informalexample>
- </para>
+]]>
+ </screen>
+ </para>
+ </example>
</refsect1>
</refentry>
@@ -239,15 +305,12 @@
<example>
<title><function>array_count_values</function>の例</title>
<programlisting role="php">
+<![CDATA[
$array = array(1, "hello", 1, "world", "hello");
array_count_values($array); // array(1=>2, "hello"=>2, "world"=>1)を返します
+]]>
</programlisting>
</example>
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -265,9 +328,7 @@
<paramdef>array <parameter>array1</parameter></paramdef>
<paramdef>array <parameter>array2</parameter></paramdef>
<paramdef>array
- <parameter>
- <replaceable><optional> ...</optional></replaceable>
- </parameter>
+ <parameter><optional> ...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -280,16 +341,33 @@
<example>
<title><function>array_diff</function> の例</title>
<programlisting role="php">
+<![CDATA[
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);
+]]>
</programlisting>
</example>
</para>
<para>
これにより、<varname>$result</varname> は
- <literal>array ("blue");</literal> となります。
+ <literal>array ("blue");</literal> となります。$array1に複数存在
+ する場合でも全て同様に処理されます。
</para>
+ <note>
+ <simpara>
+ 二つの要素は、<literal>(string) $elem1 === (string) $elem2</literal>
+
+の場合のみ等しいと見直されます。言い換えると、文字列表現が同じ場合と
+ なります。
+ <!-- TODO: example of it... -->
+ </simpara>
+ </note>
+ <warning>
+ <simpara>
+ この関数は、PHP 4.0.4では動作しません!
+ <!-- TODO: when exactly was this broken?... -->
+ </simpara>
+ </warning>
<para>
<function>array_intersect</function>も参照下さい。
</para>
@@ -324,6 +402,7 @@
<example>
<title><function>array_filter</function>の例</title>
<programlisting role="php">
+<![CDATA[
function odd($var) {
return ($var % 2 == 1);
}
@@ -332,11 +411,12 @@
return ($var % 2 == 0);
}
-$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
+$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>
@@ -346,6 +426,7 @@
り、<varname>$even_arr</varname> は
<literal>array (6, 8, 10, 12);</literal>となります。
</para>
+ ¬e.func-callback;
<para>
<function>array_map</function>,
<function>array_reduce</function>も参照下さい。
@@ -356,7 +437,7 @@
<refentry id="function.array-flip">
<refnamediv>
<refname>array_flip</refname>
- <refpurpose>配列の値を逆順にする</refpurpose>
+ <refpurpose>配列の値を反転にする</refpurpose>
</refnamediv>
<refsect1>
<title>説明</title>
@@ -367,21 +448,45 @@
</funcprototype>
</funcsynopsis>
<para>
- <function>array_flip</function> は、配列を逆順にして返します。
+ <function>array_flip</function> は、配列を反転して返します。
+ すなわち、<parameter>trans</parameter>のキーは値となり、
+ <parameter>trans</parameter>の値はキーとなります。
+ </para>
+ <para>
+
+<parameter>trans</parameter>の値は有効なキーを必要とすることに注意して
+ 下さい。すなわち、キーは、<type>integer</type>または
+
+<type>string</type>である必要があります。ある値が間違った型である場合、
+
+警告が出力され、問題のこのキー/値の組は逆順にされません。
+ </para>
+ <para>
+
+ある値が複数回出現した場合、最後のキーがその値として使用され、その他の
+ 値は失われます。
+ </para>
+ <para>
+ <function>array_flip</function>は失敗した場合に&false;を返します。
</para>
<para>
<example>
<title><function>array_flip</function>の例</title>
<programlisting role="php">
+<![CDATA[
$trans = array_flip ($trans);
$original = strtr ($str, $trans);
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title><function>array_flip</function>の例 : 衝突</title>
+ <programlisting role="php">
+<![CDATA[
+$trans = array ("a" => 1, "b" => 1, "c" => 2);
+$trans = array_flip ($trans);
+// ここで$transは次のようになります: array(1 => "b", 2 => "c");
+]]>
</programlisting>
</example>
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -412,6 +517,7 @@
<example>
<title><function>array_fill</function> の例</title>
<programlisting role="php">
+<![CDATA[
$a = array_fill(5, 6, 'banana');
/*
@@ -424,6 +530,7 @@
$a[9] = "banana";
$a[10] = "banana";
*/
+]]>
</programlisting>
</example>
</para>
@@ -443,9 +550,7 @@
<paramdef>array <parameter>array1</parameter></paramdef>
<paramdef>array <parameter>array2</parameter></paramdef>
<paramdef>array
- <parameter>
- <replaceable><optional> ...</optional></replaceable>
- </parameter>
+ <parameter><optional> ...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -458,9 +563,11 @@
<example>
<title><function>array_intersect</function> の例</title>
<programlisting role="php">
+<![CDATA[
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);
+]]>
</programlisting>
</example>
</para>
@@ -468,12 +575,73 @@
これにより、<varname>$result</varname> は
<literal>array ("a" => "green", "red");</literal>となります。
</para>
+ <note>
+ <simpara>
+ 二つの要素は、
+ <literal>(string) $elem1 === (string) $elem2</literal>の場合のみ
+
+等しいとみなされます。言い換えると、文字列表現が同じ場合となります。
+ <!-- TODO: example of it... -->
+ </simpara>
+ </note>
+ <warning>
+ <simpara>
+ この関数はPHP 4.0.4では動作しません!
+ <!-- TODO: when exactly was this broken?... -->
+ </simpara>
+ </warning>
<para>
<function>array_diff</function>も参照下さい。
</para>
</refsect1>
</refentry>
+ <refentry id="function.array-key-exists">
+ <refnamediv>
+ <refname>array_key_exists</refname>
+ <refpurpose>
+ 指定したキーまたは添字が配列にあるかどうかを調べる
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>説明</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>array_key_exists</function></funcdef>
+ <paramdef>mixed <parameter>key</parameter></paramdef>
+ <paramdef>array <parameter>search</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ 指定した<parameter>key</parameter>が配列に設定されている場合、
+ <function>array_key_exists</function>は&true;を返します。
+ <parameter>key</parameter>は配列添字として使用できる全ての
+ 値を使用可能です。
+ </para>
+ <para>
+ <example>
+ <title><function>array_key_exists</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
+$search_array = array("first" => 1, "second" => 4);
+if (array_key_exists("first", $search_array)) {
+ echo "The 'first' element is in the array";
+}
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <note>
+ <simpara>
+ この関数の名前は、PHPバージョン4.0.6では
+ <function>key_exists</function>です。
+ </simpara>
+ </note>
+ <para>
+ <function>isset</function>も参照下さい。
+ </para>
+ </refsect1>
+ </refentry>
+
<refentry id="function.array-keys">
<refnamediv>
<refname>array_keys</refname>
@@ -486,9 +654,7 @@
<funcdef>array <function>array_keys</function></funcdef>
<paramdef>array <parameter>input</parameter></paramdef>
<paramdef>mixed
- <parameter>
- <replaceable><optional>search_value</optional></replaceable>
- </parameter>
+ <parameter><optional>search_value</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -505,6 +671,7 @@
<example>
<title><function>array_keys</function>の例</title>
<programlisting role="php">
+<![CDATA[
$array = array(0 => 100, "color" => "red");
array_keys($array); // array(0, "color")を返します
@@ -513,6 +680,7 @@
$array = array ("color" => array("blue", "red", "green"), "size" =>
array("small", "medium", "large"));
array_keys ($array); // 配列("color", "size") を返します
+]]>
</programlisting>
</example>
</para>
@@ -525,15 +693,18 @@
PHP 3ユーザ用の<function>array_keys</function>の実装
</title>
<programlisting role="php">
+<![CDATA[
function array_keys ($arr, $term="") {
$t = array();
while (list($k,$v) = each($arr)) {
- if ($term && $v != $term)
+ if ($term && $v != $term) {
continue;
$t[] = $k;
}
- return $t;
+ }
+ return $t;
}
+]]>
</programlisting>
</example>
</para>
@@ -547,7 +718,9 @@
<refentry id="function.array-map">
<refnamediv>
<refname>array_map</refname>
-
<refpurpose>指定した配列の要素にコールバック関数を適用する</refpurpose>
+ <refpurpose>
+ 指定した配列の要素にコールバック関数を適用する
+ </refpurpose>
</refnamediv>
<refsect1>
<title>説明</title>
@@ -572,12 +745,14 @@
<example>
<title><function>array_map</function> の例</title>
<programlisting role="php">
+<![CDATA[
function cube($n) {
return $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
+]]>
</programlisting>
</example>
</para>
@@ -589,6 +764,7 @@
<example>
<title><function>array_map</function> - より多くの配列を使用</title>
<programlisting role="php">
+<![CDATA[
function show_Spanish($n, $m) {
return "The number $n is called $m in Spanish";
}
@@ -647,6 +823,7 @@
// )
//
// )
+]]>
</programlisting>
</example>
</para>
@@ -664,8 +841,9 @@
</para>
<para>
<example>
- <title><function>array_map</function> - 配列の配列を作成する</title>
+ <title>配列の配列を作成する</title>
<programlisting role="php">
+<![CDATA[
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
@@ -712,6 +890,7 @@
// )
//
// )
+]]>
</programlisting>
</example>
</para>
@@ -734,10 +913,8 @@
<funcdef>array <function>array_merge</function></funcdef>
<paramdef>array <parameter>array1</parameter></paramdef>
<paramdef>array <parameter>array2</parameter></paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional> ...</optional></replaceable>
- </parameter>
+ <paramdef>array
+ <parameter><optional> ...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -754,17 +931,19 @@
<example>
<title><function>array_merge</function>の例</title>
<programlisting role="php">
+<![CDATA[
$array1 = array ("color" => "red", 2, 4);
$array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
-array_merge ($array1, $array2);
+$result = array_merge ($array1, $array2);
+]]>
</programlisting>
- <para>
- 返される配列は、array("color" => "green", 2, 4, "a",
- "b", "shape" => "trapezoid", 4)となります。
- </para>
</example>
</para>
<para>
+ 返される配列は、<literal>array("color" => "green", 2, 4,
+ "a", "b", "shape" => "trapezoid", 4)</literal>となります。
+ </para>
+ <para>
<function>array_merge_recursive</function>も参照下さい。
</para>
</refsect1>
@@ -782,10 +961,8 @@
<funcdef>array <function>array_merge_recursive</function></funcdef>
<paramdef>array <parameter>array1</parameter></paramdef>
<paramdef>array <parameter>array2</parameter></paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional> ...</optional></replaceable>
- </parameter>
+ <paramdef>array
+ <parameter><optional> ...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -805,17 +982,20 @@
<example>
<title><function>array_merge_recursive</function>の例</title>
<programlisting role="php">
-$ar1 = array("color" => array("favorite" => "red"), 5);
-$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
-$result = array_merge_recursive($ar1, $ar2);
+<![CDATA[
+$ar1 = array ("color" => array ("favorite" => "red"), 5);
+$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
+$result = array_merge_recursive ($ar1, $ar2);
+]]>
</programlisting>
- <para>
- 返される配列は、array("color" => array("favorite" =>
- array("red", "green"), "blue"), 5, 10)となります。
- </para>
</example>
</para>
<para>
+ 返される配列は、<literal>array ("color" => array
+ ("favorite" => array ("red", "green"), "blue"), 5, 10)</literal>
+ となります。
+ </para>
+ <para>
<function>array_merge</function>も参照下さい。
</para>
</refsect1>
@@ -833,14 +1013,13 @@
<funcdef>bool <function>array_multisort</function></funcdef>
<paramdef>array <parameter>ar1</parameter></paramdef>
<paramdef>mixed
- <parameter>
- <replaceable><optional>arg</optional></replaceable>
- </parameter>
+ <parameter><optional>arg</optional></parameter>
</paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional>...</optional></replaceable>
- </parameter>
+ <paramdef>mixed
+ <parameter><optional>...</optional></parameter>
+ </paramdef>
+ <paramdef>array
+ <parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -893,36 +1072,43 @@
およびSORT_REGULARにリセットします。
</para>
<para>
- 成功時に&true;、失敗した場合に
- &false;を返します。
+ 成功時に&true;、失敗した場合に&false;を返します。
</para>
- <example>
- <title>複数の配列をソートする</title>
- <programlisting role="php">
+ <para>
+ <example>
+ <title>複数の配列をソートする</title>
+ <programlisting role="php">
+<![CDATA[
$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1, 3, "2", 1);
array_multisort ($ar1, $ar2);
- </programlisting>
- <para>
- この例では、ソートの後で、最初の配列は、10,"a", 100,
100となりま
- す。2番目の配列は、1, 1, "2",
3を有します。最初の配列(100および
-
100)の同じエントリに対応している2番目の配列のエントリは同時にソー
- トされます。
- </para>
- </example>
-
- <example>
- <title>多次元の配列をソートする</title>
- <programlisting role="php">
-$ar = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));
-array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC);
- </programlisting>
- <para>
- この例では、ソートされた後、最初の配列は10,100, 100, "a"
(文字列
-
として昇順っ½ートされています)を有しており、2番目の配列は、
- 1, 3, "2", 1
(数値として降順にソートされています)となっています。
- </para>
- </example>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ この例では、ソートの後で、最初の配列は、10,"a", 100,
+100となりま
+ す。2番目の配列は、1, 1, "2",
+3を有します。最初の配列(100および
+
+100)の同じエントリに対応している2番目の配列のエントリは同時にソー
+ トされます。
+ </para>
+ <para>
+ <example>
+ <title>多次元の配列をソートする</title>
+ <programlisting role="php">
+<![CDATA[
+$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
+array_multisort ($ar[0], SORT_ASC, SORT_STRING,
+ $ar[1], SORT_NUMERIC, SORT_DESC);
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ この例では、ソートされた後、最初の配列は10,100, 100, "a"
+(文字列
+
+として昇順でソートされています)を有しており、2番目の配列は、
+ 1, 3, "2", 1
+(数値として降順にソートされています)となっています。
+ </para>
</refsect1>
</refentry>
@@ -955,6 +1141,7 @@
<example>
<title><function>array_pad</function>の例</title>
<programlisting role="php">
+<![CDATA[
$input = array (12, 10, 9);
$result = array_pad ($input, 5, 0);
@@ -965,6 +1152,7 @@
$result = array_pad ($input, 2, "noop");
// 埋める処理は行われません。
+]]>
</programlisting>
</example>
</para>
@@ -990,27 +1178,23 @@
は、要素一つ分短くなります。<parameter>array</parameter>
が空の場
合、(または、配列でない場合、)&null;が返されます。
</para>
- <para>
- <example>
- <title><function>array_pop</function>の例</title>
- <programlisting role="php">
+ <example>
+ <title><function>array_pop</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
$stack = array ("orange", "apple", "raspberry");
$fruit = array_pop ($stack);
- </programlisting>
- <para>
- これにより、$stackの要素は二つ("orange"および
"apple")だけとなり、
- $fruit は"raspberry"となります。
- </para>
- </example>
+]]>
+ </programlisting>
+ </example>
+ <para>
+ これにより、<varname>$stack</varname>要素は二つ("orange"および
+
+"apple")だけとなり、<varname>$fruit</varname>は"raspberry"となります。
</para>
+ &return.falseproblem;
<para>
<function>array_push</function>,<function>array_shift</function>,
<function>array_unshift</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1027,10 +1211,8 @@
<funcdef>int <function>array_push</function></funcdef>
<paramdef>array <parameter>array</parameter></paramdef>
<paramdef>mixed <parameter>var</parameter></paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional>...</optional></replaceable>
- </parameter>
+ <paramdef>mixed
+ <parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1041,8 +1223,11 @@
<parameter>array</parameter>の長さは渡された変数の数だけ増加します。
各<parameter>var</parameter>毎に以下を繰り返すことと同じ効果があります。
<programlisting role="php">
+<![CDATA[
$array[] = $var;
+]]>
</programlisting>
+ 各<parameter>var</parameter>で繰り返されます。
</para>
<para>
処理後の配列の中の要素の数を返します。
@@ -1051,20 +1236,20 @@
<example>
<title><function>array_push</function>の例</title>
<programlisting role="php">
+<![CDATA[
$stack = array (1, 2);
-array_push($stack, "+", 3);
+array_push ($stack, "+", 3);
+]]>
</programlisting>
</example>
-
この例の結果、$stackには、4つの要素1,2,"+",3があることになります。
+ </para>
+ <para>
+ この例の結果、<varname>$stack</varname>には、4つの要素1,2,"+",
+ 3があることになります。
</para>
<para>
<function>array_pop</function>,<function>array_shift</function>,
<function>array_unshift</function>も参照下さい。
- <note>
- <para>
- この関数は、 PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1081,9 +1266,7 @@
<funcdef>mixed <function>array_rand</function></funcdef>
<paramdef>array <parameter>input</parameter></paramdef>
<paramdef>int
- <parameter>
- <replaceable><optional>num_req</optional></replaceable>
- </parameter>
+ <parameter><optional>num_req</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1109,11 +1292,13 @@
<example>
<title><function>array_rand</function>の例</title>
<programlisting role="php">
-srand((double)microtime() * 10000000);
-$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
-$rand_keys = array_rand($input, 2);
+<![CDATA[
+srand ((float) microtime() * 10000000);
+$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
+$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
+]]>
</programlisting>
</example>
</para>
@@ -1146,20 +1331,24 @@
<example>
<title><function>array_reverse</function>の例</title>
<programlisting role="php">
+<![CDATA[
$input = array ("php", 4.0, array ("green", "red"));
$result = array_reverse ($input);
$result_keyed = array_reverse ($input, TRUE);
+]]>
</programlisting>
</example>
+ </para>
+ <para>
この例において、<varname>$result</varname>は、<literal>array
(array ("green", "red"), 4.0, "php")</literal>となります。しかし、
<varname>$result2[0]</varname>はまだ<literal>"php"</literal>です。
- <note>
- <para>
- この関数は、PHP 4.0ベータ3で追加されました。
- </para>
- </note>
</para>
+ <note>
+ <para>
+ 2番目のパラメータは、PHP 4.0.3で追加されました。
+ </para>
+ </note>
</refsect1>
</refentry>
@@ -1184,17 +1373,17 @@
</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.
+ <function>array_reduce</function>は、配列<parameter>input</parameter>
+ の各要素に<parameter>callback</parameter>関数を繰り返し適用し、
+
+配列を一つの値に減らします。オプション<parameter>intial</parameter>
+
+が利用可能な場合、処理の最初で使用されたり、配列が空の場合の最終結果
+ として使用されます。
</para>
<para>
<example>
- <title><function>array_reduce</function> example</title>
+ <title><function>array_reduce</function>の例</title>
<programlisting role="php">
+<![CDATA[
function rsum($v, $w) {
$v += $w;
return $v;
@@ -1210,18 +1399,19 @@
$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>.
+ これにより、<varname>$b</varname>の値は<literal>15</literal>
+ となり、<varname>$c</varname>の値は
+ <literal>1200</literal> (= 1*2*3*4*5*10)、そして、
+ <varname>$d</varname>の値は<literal>1</literal>となります。
</para>
<para>
- See also <function>array_filter</function>,
- <function>array_map</function>.
+ <function>array_filter</function>,
+ <function>array_map</function>も参照下さい。
</para>
</refsect1>
</refentry>
@@ -1250,22 +1440,19 @@
<example>
<title><function>array_shift</function>の例</title>
<programlisting role="php">
+<![CDATA[
$args = array ("-v", "-f");
$opt = array_shift ($args);
+]]>
</programlisting>
</example>
- これにより、$argsには一つの要素"-f"が残り、$optは
- "-v"となります。
+ これにより、<varname>$args</varname>には一つの要素"-f"が残り、
+ <varname>$opt</varname>は"-v"となります。
</para>
<para>
<function>array_unshift</function>,
<function>array_push</function>,
<function>array_pop</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1283,9 +1470,7 @@
<paramdef>array <parameter>array</parameter></paramdef>
<paramdef>int <parameter>offset</parameter></paramdef>
<paramdef>int
- <parameter>
- <replaceable><optional>length</optional></replaceable>
- </parameter>
+ <parameter><optional>length</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1311,22 +1496,19 @@
<example>
<title><function>array_slice</function>の例</title>
<programlisting role="php">
+<![CDATA[
$input = array ("a", "b", "c", "d", "e");
$output = array_slice ($input, 2); // "c", "d", "e"を返します
$output = array_slice ($input, 2, -1); // "c", "d"を返します
$output = array_slice ($input, -2, 1); // "d"を返します
$output = array_slice ($input, 0, 3); // "a", "b", "c"を返します
+]]>
</programlisting>
</example>
</para>
<para>
<function>array_splice</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1344,14 +1526,10 @@
<paramdef>array <parameter>input</parameter></paramdef>
<paramdef>int <parameter>offset</parameter></paramdef>
<paramdef>int
- <parameter>
- <replaceable><optional>length</optional></replaceable>
- </parameter>
+ <parameter><optional>length</optional></parameter>
</paramdef>
<paramdef>array
- <parameter>
- <replaceable><optional>replacement</optional></replaceable>
- </parameter>
+ <parameter><optional>replacement</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1392,11 +1570,13 @@
<para>
以下は等価となります。
<programlisting role="php">
+<![CDATA[
array_push($input, $x, $y) array_splice($input, count($input), 0, array($x, $y))
array_pop($input) array_splice($input, -1)
array_shift($input) array_splice($input, 0, 1)
array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y array_splice($input, $x, 1, $y)
+]]>
</programlisting>
</para>
<para>
@@ -1406,25 +1586,29 @@
<example>
<title><function>array_splice</function>の例</title>
<programlisting role="php">
-$input = array("red", "green", "blue", "yellow");
-
-array_splice($input, 2); // $input は、array("red", "green") となります。
-array_splice($input, 1, -1); // $input は、array("red", "yellow")
となります。
-array_splice($input, 1, count($input), "orange");
- // $input は、array("red", "orange")
となります。
-array_splice($input, -1, 1, array("black", "maroon"));
- // $input は、array("red", "green",
- // "blue", "black", "maroon") となります。
+<![CDATA[
+$input = array ("red", "green", "blue", "yellow");
+array_splice ($input, 2);
+// $input is now array ("red", "green")
+
+$input = array ("red", "green", "blue", "yellow");
+array_splice ($input, 1, -1);
+// $input is now array ("red", "yellow")
+
+$input = array ("red", "green", "blue", "yellow");
+array_splice ($input, 1, count($input), "orange");
+// $input is now array ("red", "orange")
+
+$input = array ("red", "green", "blue", "yellow");
+array_splice ($input, -1, 1, array("black", "maroon"));
+// $input is now array ("red", "green",
+// "blue", "black", "maroon")
+]]>
</programlisting>
</example>
</para>
<para>
<function>array_slice</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1452,6 +1636,7 @@
<example>
<title><function>array_sum</function> の例</title>
<programlisting role="php">
+<![CDATA[
$a = array(2,4,6,8);
echo "sum(a) = ".array_sum($a)."\n";
// 出力: sum(a) = 20
@@ -1459,9 +1644,16 @@
$b = array("a"=>1.2,"b"=>2.3,"c"=>3.4);
echo "sum(b) = ".array_sum($b)."\n";
// 出力: sum(b) = 6.9
+]]>
</programlisting>
</example>
</para>
+ <note>
+ <para>
+
+4.0.6より前のバージョンのPHPは、渡された配列自体を修正し、文字列を
+
+数値(これは値にもよるが多くの場合ゼロとなります)に変換していました。
+ </para>
+ </note>
</refsect1>
</refentry>
@@ -1481,21 +1673,69 @@
<para>
<function>array_unique</function> は、
<parameter>array</parameter>を入力とし、値に重複のない新規配列を
- 返します。キーは保持されることに注意して下さい。
+ 返します。
+ </para>
+ <para>
+ キーは保持されることに注意して下さい。
+
+<function>array_unique</function>は各値に関する最初のキーを保持し、
+ 残りのキーを全て無視します。
</para>
+ <note>
+ <simpara>
+ <literal>(string) $elem1 === (string) $elem2</literal>の場合のみ
+
+二つの要素は等しいとみなされます。言い換えると、文字列表現が
+ 同じ場合となります。
+ <!-- TODO: example of it... -->
+ </simpara>
+ <simpara>
+ 最初の要素が使用されます。
+ </simpara>
+ </note>
+ <warning>
+ <simpara>
+ この関数は、PHP 4.0.4では使用できません!
+ <!-- TODO: when exactly was this broken?... -->
+ </simpara>
+ </warning>
<para>
<example>
<title><function>array_unique</function> の例</title>
<programlisting role="php">
+<![CDATA[
$input = array ("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique ($input);
+print_r($result);
+// 出力は次のようになります :
+//Array
+//(
+// [a] => green
+// [0] => red
+// [1] => blue
+//)
+]]>
</programlisting>
</example>
</para>
<para>
- この例により、<varname>$result</varname> は、
- <literal>array ("a" =>"green", "red", "blue");</literal>を有する
- ことになります。
+ <example>
+ <title><function>array_unique</function>と型</title>
+ <programlisting role="php">
+<![CDATA[
+$input = array (4,"4","3",4,3,"3");
+$result = array_unique ($input);
+var_dump($result);
+
+/* 出力:
+array(2) {
+ [0]=>
+ int(4)
+ [1]=>
+ string(1) "3"
+}
+*/
+]]>
+ </programlisting>
+ </example>
</para>
</refsect1>
</refentry>
@@ -1503,7 +1743,7 @@
<refentry id="function.array-unshift">
<refnamediv>
<refname>array_unshift</refname>
- <refpurpose> 一つ以上の要素を 配列の 最初に加える </refpurpose>
+ <refpurpose> 一つ以上の要素を配列の最初に加える </refpurpose>
</refnamediv>
<refsect1>
<title>説明</title>
@@ -1512,10 +1752,8 @@
<funcdef>int <function>array_unshift</function></funcdef>
<paramdef>array <parameter>array</parameter></paramdef>
<paramdef>mixed <parameter>var</parameter></paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional>...</optional></replaceable>
- </parameter>
+ <paramdef>mixed
+ <parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1531,22 +1769,19 @@
<example>
<title><function>array_unshift</function>の例</title>
<programlisting role="php">
-$queue = array("p1", "p3");
-array_unshift($queue, "p4", "p5", "p6");
+<![CDATA[
+$queue = array ("p1", "p3");
+array_unshift ($queue, "p4", "p5", "p6");
+]]>
</programlisting>
</example>
- この例により、$queue の要素は次の5つとなります。: "p4",
"p5", "p6",
- "p1", "p3"
+
+この例により、<varname>$queue</varname>の要素は次の5つとなります。
+ : "p4", "p5", "p6", "p1", "p3"
</para>
<para>
<function>array_shift</function>,
<function>array_push</function>,
<function>array_pop</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1572,15 +1807,37 @@
<example>
<title><function>array_values</function>の例</title>
<programlisting role="php">
+<![CDATA[
$array = array("size" => "XL", "color" => "gold");
array_values($array); // array("XL", "gold")を返します
+]]>
</programlisting>
</example>
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
+ </para>
+ <note>
+ <para>
+ この関数は、PHP 4.0で追加されました。以下の実装はPHP
+3でも
+ 使用することが可能です。
+ <example>
+ <title>
+ PHP 3ユーザ用の<function>array_values</function>の実装
+ </title>
+ <programlisting role="php">
+<![CDATA[
+function array_values ($arr) {
+ $t = array();
+ while (list($k, $v) = each ($arr)) {
+ $t[] = $v;
+ }
+ return $t;
+}
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </note>
+ <para>
+ <function>array_keys</function>も参照下さい。
</para>
</refsect1>
</refentry>
@@ -1599,22 +1856,31 @@
<funcdef>int <function>array_walk</function></funcdef>
<paramdef>array <parameter>arr</parameter></paramdef>
<paramdef>string <parameter>func</parameter></paramdef>
- <paramdef>mixed <parameter>userdata</parameter></paramdef>
+ <paramdef>mixed
+ <parameter><optional>userdata</optional></parameter>
+ </paramdef>
</funcprototype>
</funcsynopsis>
<simpara>
<parameter>arr</parameter>の各要素に<parameter>func</parameter>
- という名前の関数を適用します。
+ という名前のユーザ定義関数を適用します。
<parameter>func</parameter>には、配列の値が最初の引数として
渡され、配列のキーが2番目のパラメータとして渡されます。
<parameter>userdata</parameter>が指定された場合、3番目の引数として
- ユーザー関数に渡されます。
+
+ユーザー関数に渡されます。<parameter>func</parameter>はユーザ定義の
+
+関数である必要があり、ネーティブなPHP関数は使用できません。
+ つまり、<function>array_walk</function>を直接
+ <function>str2lower</function>と組み合わせることて使用することは
+
+できません。まず、この関数を用いてユーザ定義関数を構築し、その関数
+ を引数として渡す必要があります。
+ </simpara>
+ ¬e.func-callback;
+ <simpara>
<parameter>func</parameter>が2つまたは3つを超える引数を必要とする場合、
<parameter>userdata</parameter>の指定によっては、
<function>array_walk</function>が<parameter>func</parameter>
- をコールする度に警告が生成されます。
- これらの警告は、<function>array_walk</function>の前に
- '@'マークを付けるか
+ をコールする度に警告が生成されます。これらの警告は、
+ <function>array_walk</function>の前に'@'マークを付けるか
<function>error_reporting</function>を使用することにより
抑制されます。
</simpara>
@@ -1625,11 +1891,15 @@
渡す必要があります。この場合、配列の要素に加えた変更は、配列自体
に対して行われます。
</para>
+ <para>
+
+<parameter>func</parameter>の中から配列を修正すると予測できない
+ 動作を引き起こす可能性があります。
+ </para>
</note>
<note>
<para>
キー及びuserdataを<parameter>func</parameter>に渡す処理は、
- バージョン 4.0で追加されました。
+ バージョン4.0で追加されました。
</para>
<para>
PHP
4では、<function>array_walk</function>で配列のリセットがデフォ
@@ -1641,14 +1911,15 @@
<example>
<title><function>array_walk</function>の例</title>
<programlisting role="php">
+<![CDATA[
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
-
-function test_alter (&$item1, $key, $prefix) {
- $item1 = "$prefix: $item1";
+
+function test_alter (&$item1, $key, $prefix) {
+ $item1 = "$prefix: $item1";
}
function test_print ($item2, $key) {
- echo "$key. $item2<br>\n";
+ echo "$key. $item2<br>\n";
}
array_walk ($fruits, 'test_print');
@@ -1656,6 +1927,7 @@
array_walk ($fruits, 'test_alter', 'fruit');
reset ($fruits);
array_walk ($fruits, 'test_print');
+]]>
</programlisting>
</example>
</para>
@@ -1670,7 +1942,7 @@
<refnamediv>
<refname>arsort</refname>
<refpurpose>
-
連想キーと要素との関係を維持しつつ配列を逆順にソートします
+
+連想キーと要素との関係を維持しつつ配列を逆順にソートする
</refpurpose>
</refnamediv>
<refsect1>
@@ -1680,9 +1952,7 @@
<funcdef>void <function>arsort</function></funcdef>
<paramdef>array <parameter>array</parameter></paramdef>
<paramdef>int
- <parameter>
- <replaceable><optional>sort_flags</optional></replaceable>
- </parameter>
+ <parameter><optional>sort_flags</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1690,24 +1960,32 @@
この関数は、連想配列において各配列のキーと要素との関係を維持しつ
つソートを行います。この関数は、主に実際の要素の並び方が重要であ
る連想配列をソートするために使われます。
- <example>
- <title><function>arsort</function>の例</title>
- <programlisting role="php">
+ </para>
+ <example>
+ <title><function>arsort</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
arsort ($fruits);
-reset($fruits);
-while(list($key,$val)=each($fruits)) {
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
echo "$key = $val\n";
}
- </programlisting>
- </example>
- この例は、以下のように出力されます。
- <computeroutput>
-fruits[a] = orange
-fruits[d] = lemon
-fruits[b] = banana
-fruits[c] = apple
- </computeroutput>
+]]>
+ </programlisting>
+ <para>
+ この例は、以下のように出力されます。
+ <screen>
+<![CDATA[
+a = orange
+d = lemon
+b = banana
+c = apple
+]]>
+ </screen>
+ </para>
+ </example>
+ <para>
fruitsはアルファベットの逆順にソートされ、各要素とキーとの関係は
維持されます。
</para>
@@ -1727,7 +2005,9 @@
<refentry id="function.asort">
<refnamediv>
<refname>asort</refname>
-
<refpurpose>連想キーと要素との関係を維持しつつ配列をソートします</refpurpose>
+ <refpurpose>
+ 連想キーと要素との関係を維持しつつ配列をソートする
+ </refpurpose>
</refnamediv>
<refsect1>
<title>説明</title>
@@ -1736,9 +2016,7 @@
<funcdef>void <function>asort</function></funcdef>
<paramdef>array <parameter>array</parameter></paramdef>
<paramdef>int
- <parameter>
- <replaceable><optional>sort_flags</optional></replaceable>
- </parameter>
+ <parameter><optional>sort_flags</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1746,24 +2024,32 @@
この関数は、連想配列において各配列のキーと要素との関係を維持しつ
つ配列をソートします。この関数は、主に実際の要素の並び方が重要で
ある連想配列をソートするために使われます。
- <example>
- <title><function>asort</function>の例</title>
- <programlisting role="php">
+ </para>
+ <example>
+ <title><function>asort</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
asort ($fruits);
-reset($fruits);
-while(list($key,$val)=each($fruits)) {
- echo "$key = $val\n";
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+ echo "$key = $val\n";
}
- </programlisting>
- </example>
- この例は、以下のように出力されます。
- <computeroutput>
-fruits[c] = apple
-fruits[b] = banana
-fruits[d] = lemon
-fruits[a] = orange
- </computeroutput>
+]]>
+ </programlisting>
+ <para>
+ この例は、以下のように出力されます。
+ <screen>
+<![CDATA[
+c = apple
+b = banana
+d = lemon
+a = orange
+]]>
+ </screen>
+ </para>
+ </example>
+ <para>
fruitsはアルファベットの昇順にソートされ、各要素とキーとの関係は
維持されます。
</para>
@@ -1791,12 +2077,9 @@
<funcsynopsis>
<funcprototype>
<funcdef>array <function>compact</function></funcdef>
- <paramdef><parameter>string varname | array
- varnames</parameter></paramdef>
- <paramdef>
- <parameter>
- <replaceable><optional>...</optional></replaceable>
- </parameter>
+ <paramdef>mixed <parameter>varname</parameter></paramdef>
+ <paramdef>mixed
+ <parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
@@ -1820,6 +2103,7 @@
<example>
<title><function>compact</function>の例</title>
<programlisting role="php">
+<![CDATA[
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
@@ -1827,20 +2111,18 @@
$location_vars = array ("city", "state");
$result = compact ("event", "nothing_here", $location_vars);
+]]>
</programlisting>
<para>
- この例により、$resultは、array("event" => "SIGGRAPH", "city"
- => "San Francisco", "state" => "CA")となります。
+ この例により、<varname>$result</varname>は、
+ <literal>array
+ ("event" => "SIGGRAPH", "city" => "San Francisco",
+ "state" => "CA")</literal>となります。
</para>
</example>
</para>
<para>
<function>extract</function>も参照下さい。
- <note>
- <para>
- この関数は、PHP 4.0で追加されました。
- </para>
- </note>
</para>
</refsect1>
</refentry>
@@ -1864,43 +2146,52 @@
ありませんから)。
</para>
<para>
- 変数が配列でない場合は1を返します。
+ 変数が配列でない場合は<literal>1</literal>を返します。
+ (例外: <literal>count(&null;)</literal> は<literal>0</literal>と等価)
</para>
+ <warning>
+ <para>
+
+<function>count</function>は、セットされていない変数に関して0を返
+
+しますが、変数が空の配列として初期化されている場合にも0を返します。
+ ある変数がセットされているかどうかを調べるには、
+ <function>isset</function>を使用してください。
+ </para>
+ </warning>
<para>
- 変数がセットされていない場合は0を返します。
- <warning>
- <para>
-
<function>count</function>は、セットされていない変数に関して0を返
-
しますが、変数が空の配列として初期化されている場合にも0を返します。
- ある変数がセットされているかどうかを調べるには、
- <function>isset</function>を使用してください。
- </para>
- </warning>
+
+配列の実装やPHPでの使用法に関する詳細な説明についてはマニュアルの
+ <link linkend="language.types.array">配列</link>のセクションを
+ 参照下さい。
</para>
<para>
<example>
<title><function>count</function> の例</title>
<programlisting role="php">
+ <!-- TODO: examples about count(null), count(false), count(object).. -->
+<![CDATA[
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
-// 代入された要素は3であり、$result は 2ではなく3となる
+// $result == 3
-$a[2] = 1;
-$a[4] = "";
-$a[6] = 5;
-$a[8] = 7;
-$a[10] = 11;
-$a[12] = "";
-$result = count ($a);
-// 代入された要素は4つなので、$result == 4 です。
+$b[0] = 7;
+$b[5] = 9;
+$b[10] = 11;
+$result = count ($b);
+// $result == 3;
+]]>
</programlisting>
</example>
</para>
+ <note>
+ <para>
+ <function>sizeof</function>関数は、<function>count</function>
+ へのエイリアスです。
+ </para>
+ </note>
<para>
- <function>sizeof</function>, <function>isset</function>,
- <function>is_array</function>も参照下さい。
+ <function>is_array</function>, <function>isset</function>,
+ <function>strlen</function>も参照下さい。
</para>
</refsect1>
</refentry>
@@ -1908,7 +2199,7 @@
<refentry id="function.current">
<refnamediv>
<refname>current</refname>
- <refpurpose>配列内の現在の要素を返す</refpurpose>
+ <refpurpose>配列内のカレントの要素を返す</refpurpose>
</refnamediv>
<refsect1>
<title>説明</title>
@@ -1919,7 +2210,7 @@
</funcprototype>
</funcsynopsis>
<para>
- 各配列は、"現在"の要素へのポインタを有しています。
+ 各配列は、"カレント"の要素へのポインタを有しています。
このポインタは、その配列の最初の要素を指すように初期化されます。
</para>
<para>
@@ -1960,7 +2251,7 @@
</funcprototype>
</funcsynopsis>
<para>
- 配列<parameter>array</parameter>から、次のキャh値のペアを返し、
+
+配列<parameter>array</parameter>から、次のキーと値のペアを返し、
配列カーソルを進めます。このペアは、4つの要素を持つ配列で、
それぞれの要素は<emphasis>0</emphasis>,<emphasis>1</emphasis>,
<emphasis>key</emphasis>,<emphasis>value</emphasis>というキーを有
@@ -1976,32 +2267,35 @@
<example>
<title><function>each</function>の例</title>
<programlisting role="php">
+<![CDATA[
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
-$bar = each( $foo );
+$bar = each ($foo);
+]]>
</programlisting>
<para>
<literal>$bar</literal>は、ここでは以下のキー/値のペアを保持し
ています。
<itemizedlist spacing="compact">
- <listitem><simpara>0 => 0</simpara></listitem>
- <listitem><simpara>1 => 'bob'</simpara></listitem>
- <listitem><simpara>key => 0</simpara></listitem>
- <listitem><simpara>value => 'bob'</simpara></listitem>
+ <listitem><simpara>0 => 0</simpara></listitem>
+ <listitem><simpara>1 => 'bob'</simpara></listitem>
+ <listitem><simpara>key => 0</simpara></listitem>
+ <listitem><simpara>value => 'bob'</simpara></listitem>
</itemizedlist>
-
<programlisting role="php">
+<![CDATA[
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
+]]>
</programlisting>
</para>
<para>
<literal>$bar</literal>は、この時点で以下のキー/値のペアを保持
しています。
<itemizedlist spacing="compact">
- <listitem><simpara>0 => 'Robert'</simpara></listitem>
- <listitem><simpara>1 => 'Bob'</simpara></listitem>
- <listitem><simpara>key => 'Robert'</simpara></listitem>
- <listitem><simpara>value => 'Bob'</simpara></listitem>
+ <listitem><simpara>0 => 'Robert'</simpara></listitem>
+ <listitem><simpara>1 => 'Bob'</simpara></listitem>
+ <listitem><simpara>key => 'Robert'</simpara></listitem>
+ <listitem><simpara>value => 'Bob'</simpara></listitem>
</itemizedlist>
</para>
</example>
@@ -2009,24 +2303,27 @@
<para>
通常<function>each</function>は、配列の走査をす?_っk
<function>list</function>と共に使用されます。例えば、
- $HTTP_POST_VARSの場合は次のよFになります。
+ $HTTP_POST_VARSの場合は次のようになります。
<example>
<title>
<function>each</function>により$HTTP_POST_VARSを走査する
</title>
<programlisting role="php">
-echo "POSTメソッドにより受け渡された値:<br>";
+<![CDATA[
+echo "POSTメソッドにより受け渡された値:<br>";
reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS)) {
- echo "$key => $val<br>";
+ echo "$key => $val<br>";
}
+]]>
</programlisting>
</example>
</para>
<para>
<function>each</function>を実行した後、配列カーソルは、
-
配列の次の要素に移動し~す。配列の最終要素にカーソルがある場合は、
- 最終要素にとどまります。
+
+配列の次の要素に移動します。配列の最終要素にカーソルがある場合は、
+
+最終要素にとどまります。eachを使用して配列を走査するには、
+ <function>reset</function>を使用する必要があります。
</para>
<para>
<function>key</function>、<function>list</function>、
@@ -2178,8 +2475,9 @@
<example>
<title><function>extract</function>の例</title>
<programlisting role="php">
-<?php
-
+<![CDATA[
+<?php
+
/* $var_array はwddx_deserializeから返された配列と仮定します
*/
$size = "large";
@@ -2191,21 +2489,26 @@
print "$color, $size, $shape, $wddx_size\n";
?>
+]]>
</programlisting>
</example>
</para>
<para>
上記の例の結果は以下となります。
<programlisting>
+<![CDATA[
blue, large, sphere, medium
+]]>
</programlisting>
</para>
<para>
- EXTR_PREFIX_SAMEを指定したため、$sizeは上書きされず、$wddx_size
- が作成されます。
+ EXTR_PREFIX_SAMEを指定したため、<varname>$size</varname>は上書き
+ されず、<varname>$wddx_size</varname>が作成されます。
EXTR_SKIPが指定された場合、$wddx_sizeは作成されません。EXTR_OVERWRITE
-
の場合は、$sizeの値は"medium"となります。EXTR_PREFIX_ALLの場合は
- 新規の変数 $wddx_color, $wddx_size, $wddx_shapeが作成されます。
+ の場合は、<varname>$size</varname>の値は"medium"となります。
+ EXTR_PREFIX_ALLの場合は新規の変数<varname>$wddx_color</varname>,
+ <varname>$wddx_size</varname>, <varname>$wddx_shape</varname>
+ が作成されます。
</para>
<para>
連想配列を使用する必要があり、数値添字の配列には結果は出力されま
@@ -2237,8 +2540,7 @@
<para>
<parameter>haystack</parameter>で
<parameter>needle</parameter>を検索し、配列にそれがあった場合に
- &true;、それ以外の場合は、
- &false;を返します。
+ &true;、それ以外の場合は、&false;を返します。
</para>
<para>
3番目のパラメータ<parameter>strict</parameter>が
@@ -2246,14 +2548,25 @@
<function>in_array</function>は、<parameter>haystack</parameter>
の中の <parameter>needle</parameter>の型も確認します。
</para>
+ <note>
+ <para>
+
+<parameter>needle</parameter>が文字列の場合、比較の際に大文字小文字
+ は区別されます。
+ </para>
+ </note>
<para>
<example>
<title><function>in_array</function>の例</title>
<programlisting role="php">
+<![CDATA[
$os = array ("Mac", "NT", "Irix", "Linux");
-if (in_array ("Irix", $os)){
+if (in_array ("Irix", $os)) {
print "Got Irix";
}
+if (in_array ("mac", $os)) { #
+in_array()は大文字小文字を区別するため失敗
+ print "Got mac";
+}
+]]>
</programlisting>
</example>
</para>
@@ -2261,18 +2574,20 @@
<example>
<title>strictを指定した<function>in_array</function>の例</title>
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, TRUE))
- echo "'12.4' found with strict check\n";
+ echo "'12.4' found with strict check\n";
if (in_array(1.13, $a, TRUE))
- echo "1.13 found with strict check\n";
-?>
+ echo "1.13 found with strict check\n";
+?>
-// この例は以下のような出力となります。
+// 以下のような出力となります。
1.13 found with strict check
+]]>
</programlisting>
</example>
</para>
@@ -2296,14 +2611,15 @@
<funcdef>mixed <function>array_search</function></funcdef>
<paramdef>mixed <parameter>needle</parameter></paramdef>
<paramdef>array <parameter>haystack</parameter></paramdef>
- <paramdef>bool <parameter>strict</parameter></paramdef>
+ <paramdef>bool
+ <parameter><optional>strict</optional></parameter>
+ </paramdef>
</funcprototype>
</funcsynopsis>
<para>
<parameter>haystack</parameter>において
<parameter>needle</parameter>を検索し、配列中に見付かった場合にそ
- のキーを返します。そうでない場合に&false;を返し
- ます。
+ のキーを返します。そうでない場合に&false;を返します。
</para>
<para>
3番目のパラメータ<parameter>strict</parameter>が
@@ -2312,6 +2628,7 @@
<parameter>haystack</parameter>の中にある
<parameter>needle</parameter>の型も確認します。
</para>
+ &return.falseproblem;
<para>
<function>in_array</function>も参照下さい。
</para>
@@ -2366,21 +2683,31 @@
<example>
<title><function>krsort</function>の例</title>
<programlisting role="php">
+<![CDATA[
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort ($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
echo "$key -> $val\n";
}
+]]>
</programlisting>
</example>
+ </para>
+ <para>
この例の出力は次のようになります。
- <computeroutput>
-fruits[d] = lemon
-fruits[c] = apple
-fruits[b] = banana
-fruits[a] = orange
- </computeroutput>
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+<![CDATA[
+d = lemon
+c = apple
+b = banana
+a = orange
+]]>
+ </programlisting>
+ </informalexample>
</para>
<para>
オプションのパラメータ<parameter>sort_flags</parameter>によりソー
@@ -2390,7 +2717,7 @@
<simpara>
<function>asort</function>, <function>arsort</function>,
<function>ksort</function>, <function>sort</function>,
- <function>rsort</function>も参照下さい。
+ <function>natsort</function>, <function>rsort</function>も参照下さい。
</simpara>
</refsect1>
</refentry>
@@ -2419,28 +2746,37 @@
<example>
<title><function>ksort</function>の例</title>
<programlisting role="php">
+<![CDATA[
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort ($fruits);
-reset($fruits);
-while(list($key,$val)=each($fruits)) {
- echo "$key -> $val\n";
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+ echo "$key = $val\n";
}
+]]>
</programlisting>
</example>
+ </para>
+ <para>
この例では以下のように出力が行われます。
- <computeroutput>
-fruits[a] = orange
-fruits[b] = banana
-fruits[c] = apple
-fruits[d] = lemon
- </computeroutput>
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+<![CDATA[
+a = orange
+b = banana
+c = apple
+d = lemon
+]]>
+ </programlisting>
+ </informalexample>
</para>
<para>
オプションのパラメータ<parameter>sort_flags</parameter>によりソー
トの動作を修正可能です。詳細については、<function>sort</function>
を参照下さい。
</para>
-
<simpara>
<function>asort</function>, <function>arsort</function>,
<function>sort</function>, <function>natsort</function>,
@@ -2476,25 +2812,27 @@
<example>
<title><function>list</function>の例</title>
<programlisting role="php">
-<table>
- <tr>
- <th>従業員名</th>
- <th>給与</th>
- </tr>
-
-<?php
-
-$result = mysql_query ($conn, "SELECT id, name, salary FROM employees");
-while (list($id, $name, $salary) = mysql_fetch_row($result)) {
- print(" <tr>\n".
- " <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
- " <td>$salary</td>\n".
- " </tr>\n");
+<![CDATA[
+<table>
+ <tr>
+ <th>社員名</th>
+ <th>給料</th>
+ </tr>
+
+<?php
+
+$result = mysql_query ("SELECT id, name, salary FROM employees",$conn);
+while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
+ print (" <tr>\n".
+ " <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
+ " <td>$salary</td>\n".
+ " </tr>\n");
}
?>
-</table>
+</table>
+]]>
</programlisting>
</example>
</para>
@@ -2531,8 +2869,9 @@
<example>
<title><function>natsort</function>の例</title>
<programlisting role="php">
-$array1 = $array2 = array ("img12.png","img10.png","img2.png","img1.png");
-
+<![CDATA[
+$array1 = $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png");
+
sort($array1);
echo "Standard sorting\n";
print_r($array1);
@@ -2540,6 +2879,7 @@
natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
+]]>
</programlisting>
</example>
</para>
@@ -2549,6 +2889,7 @@
<para>
<informalexample>
<programlisting>
+<![CDATA[
Standard sorting
Array
(
@@ -2566,6 +2907,7 @@
[1] => img10.png
[0] => img12.png
)
+]]>
</programlisting>
</informalexample>
より詳細な情報については、Martin Poolの<ulink
@@ -2733,16 +3075,56 @@
<funcsynopsis>
<funcprototype>
<funcdef>array <function>range</function></funcdef>
- <paramdef>int <parameter>low</parameter></paramdef>
- <paramdef>int <parameter>high</parameter></paramdef>
+ <paramdef>mixed <parameter>low</parameter></paramdef>
+ <paramdef>mixed <parameter>high</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>range</function>は、<parameter>low</parameter>から
<parameter>high</parameter>までの整数の配列を返します。
+ low > highの場合、順番はhighからlowとなります。
</para>
+ <example>
+ <title><function>range</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
+foreach(range(0, 9) as $number) {
+ echo $number;
+}
+foreach(range('a', 'z') as $letter) {
+ echo $letter;
+}
+foreach(range('z', 'a') as $letter) {
+ echo $letter;
+}
+]]>
+ </programlisting>
+ </example>
+ <note>
+ <para>
+ 4.1.0より前のバージョンでは、<function>range</function>関数は、
+
+昇順の整数配列のみを生成しました。文字シーケンス及び降順の配列
+ のサポートが4.1.0で追加されました。
+ </para>
+ <example>
+
+<title>デクリメントする範囲及び文字シーケンスの模擬</title>
+ <programlisting role="php">
+<![CDATA[
+# 範囲の順番を反転するためにarray_reverseを使用可能
+foreach(array_reverse(range(0,9)) as $number) {
+ echo $number;
+}
+
+# chr()を用いて整数を文字に変換するためにarray_map()を使用可能
+foreach(array_map('chr', range(ord('a'),ord('z'))) as $character) {
+ echo $character;
+}
+]]>
+ </programlisting>
+ </example>
+ </note>
<para>
- 使用例については、<function>shuffle</function>を参照下さい。
+
+その他の使用例については、<function>shuffle</function>を参照下さい。
</para>
</refsect1>
</refentry>
@@ -2770,12 +3152,8 @@
<function>reset</function>は、配列の最初の要素の値を返します。
</para>
<para>
- <function>current</function>,
- <function>each</function>,
- <function>next</function>
- <function>prev</function>,
- <function>reset</function>
- も参照下さい。
+ <function>current</function>, <function>each</function>,
+ <function>next</function>, <function>prev</function>も参照下さい。
</para>
</refsect1>
</refentry>
@@ -2803,21 +3181,33 @@
<example>
<title><function>rsort</function>の例</title>
<programlisting role="php">
+<![CDATA[
$fruits = array ("lemon", "orange", "banana", "apple");
rsort ($fruits);
-reset($fruits);
-while(list($key,$val)=each($fruits)) {
- echo "$key -> $val\n";
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+ echo "$key = $val\n";
}
+]]>
</programlisting>
</example>
- この例では以下のように表示します。
- <computeroutput>
-fruits[0] = orange
-fruits[1] = lemon
-fruits[2] = banana
-fruits[3] = apple
- </computeroutput>
+ </para>
+ <para>
+ この例の出力は以下のようになります。
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+<![CDATA[
+0 = orange
+1 = lemon
+2 = banana
+3 = apple
+]]>
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
fruitsはアルファベットの逆順にソートされました。
</para>
<para>
@@ -2853,21 +3243,21 @@
<example>
<title><function>shuffle</function>の例</title>
<programlisting role="php">
+<![CDATA[
$numbers = range (1,20);
-srand ((double)microtime()*1000000);
+srand ((float)microtime()*1000000);
shuffle ($numbers);
-while (list(, $number) = each ($numbers)) {
+while (list (, $number) = each ($numbers)) {
echo "$number ";
}
+]]>
</programlisting>
</example>
</para>
<para>
<function>arsort</function>,<function>asort</function>,
<function>ksort</function>,<function>rsort</function>,
- <function>natsort</function>, <function>natcasesort</function>,
- <function>sort</function>,<function>usort</function>,
- <function>uksort</function>も参照下さい。
+ <function>sort</function>,<function>usort</function>も参照下さい。
</para>
</refsect1>
</refentry>
@@ -2919,29 +3309,33 @@
<example>
<title><function>sort</function>の例</title>
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
$fruits = array ("lemon", "orange", "banana", "apple");
sort ($fruits);
reset ($fruits);
-while (list ($key,$val) = each ($fruits)) {
- echo "fruits[".$key."] = ".$val;
+while (list ($key, $val) = each ($fruits)) {
+ echo "fruits[".$key."] = ".$val."\n";
}
-
-?>
+
+?>
+]]>
</programlisting>
</example>
</para>
<para>
- この例では以下のように表示します。
+ この例の出力は以下のようになります。
</para>
<para>
<informalexample>
<programlisting>
+<![CDATA[
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
+]]>
</programlisting>
</informalexample>
</para>
@@ -3013,6 +3407,7 @@
参照下さい。
</para>
</note>
+ ¬e.func-callback;
<para>
<function>usort</function>, <function>uksort</function>,
<function>sort</function>, <function>asort</function>,
@@ -3043,10 +3438,11 @@
この関数は、ユーザー定義の比較関数を用いて配列のキーをソートします。
ソートしたい配列を複雑な基準でソートする必要がある場合には、
この関数を使う必要があります。
-
- <example>
- <title><function>uksort</function>の例</title>
- <programlisting role="php">
+ </para>
+ <example>
+ <title><function>uksort</function>の例</title>
+ <programlisting role="php">
+<![CDATA[
function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
@@ -3059,21 +3455,30 @@
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
- </programlisting>
- </example>
+]]>
+ </programlisting>
+ </example>
+ <para>
この例による出力は以下のようになります。
- <computeroutput>
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+<![CDATA[
20: twenty
10: ten
4: four
3: three
- </computeroutput>
+]]>
+ </programlisting>
+ </informalexample>
</para>
+ ¬e.func-callback;
<para>
<function>usort</function>, <function>uasort</function>,
<function>sort</function>, <function>asort</function>,
<function>arsort</function>, <function>ksort</function>,
- <function>rsort</function>, <function>natsort</function>
+ <function>natsort</function>, <function>rsort</function>
も参照下さい。
</para>
</refsect1>
@@ -3092,7 +3497,7 @@
<funcprototype>
<funcdef>void <function>usort</function></funcdef>
<paramdef>array <parameter>array</parameter></paramdef>
- <paramdef>function <parameter>cmp_function</parameter></paramdef>
+ <paramdef>string <parameter>cmp_function</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
@@ -3101,13 +3506,20 @@
この関数を使用するべきです。
</para>
<para>
-
比較関数は、最初の引数が二番目の引数より小さいか等しいか大きい場合に
-
それぞれゼロ未満、ゼロに等しい、ゼロより大きい整数を返します。二つの
-
メンバーの?較結果が等しいとなった場合、ソートされた配列の順番は定義
- されません。
+
+比較関数は、最初の引数が2番目の引数より小さいか、等しいか、大きい
+
+場合に、それぞれゼロ未満、ゼロに等しい、ゼロより大きい整数を返す
+
+必要があります。2つのメンバーの比較結果が等しいとなった場合、
+ ソートされた配列の順番は定義されません。
+ </para>
+ <para>
+
+比較関数としてあるオブジェクトのメンバー関数を使用することも可能です。
+ 以下の例3を参照下さい。
+ </para>
+ <para>
<example>
<title><function>usort</function>の例</title>
<programlisting role="php">
+<![CDATA[
function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
@@ -3120,6 +3532,7 @@
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
+]]>
</programlisting>
</example>
</para>
@@ -3129,24 +3542,27 @@
<para>
<informalexample>
<programlisting>
+<![CDATA[
0: 6
1: 5
2: 3
3: 2
4: 1
+]]>
</programlisting>
</informalexample>
</para>
<note>
<para>
もちろん、このような簡単な例では<function>rsort</function>関数
- の方がよォiしfいます。
+ の方がより適当です。
</para>
</note>
<para>
<example>
<title>多次元配列を使用する<function>usort</function>の例</title>
<programlisting role="php">
+<![CDATA[
function cmp ($a, $b) {
return strcmp($a["fruit"],$b["fruit"]);
}
@@ -3160,6 +3576,7 @@
while (list ($key, $value) = each ($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
+]]>
</programlisting>
</example>
</para>
@@ -3173,26 +3590,76 @@
<para>
<informalexample>
<programlisting>
+<![CDATA[
$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
+]]>
</programlisting>
</informalexample>
</para>
<para>
- <warning>
- <para>
- (Solarisシステムのような)いくつかのCライブラリに含まれる
-
quicksort関数は、比較関数が適当な値を返さない場合にPHPをクラッ
- シュさせる可能性があります。
- </para>
- </warning>
+ <example>
+ <title>
+
+<function>usort</function>でオブジェクトのメンバ関数を使用する例
+ </title>
+ <programlisting role="php">
+<![CDATA[
+class TestObj {
+ var $name;
+
+ function TestObj($name)
+ {
+ $this->name = $name;
+ }
+
+ /* 静的な比較関数: */
+ function cmp_obj($a, $b)
+ {
+ $al = strtolower($a->name);
+ $bl = strtolower($b->name);
+ if ($al == $bl) return 0;
+ return ($al > $bl) ? +1 : -1;
+ }
+}
+
+$a[] = new TestObj("c");
+$a[] = new TestObj("b");
+$a[] = new TestObj("d");
+
+uasort($a, array ("TestObj", "cmp_obj"));
+
+foreach ($a as $item) {
+ print $item->name."\n";
+}
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ この例の出力は以下のようになります。
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+b
+c
+d
+ </programlisting>
+ </informalexample>
</para>
+ <warning>
+ <para>
+ (Solarisシステムのような)いくつかのCライブラリに含まれる
+
+quicksort関数は、比較関数が適当な値を返さない場合にPHPをクラッ
+ シュさせる可能性があります。
+ </para>
+ </warning>
<para>
<function>uasort</function>, <function>uksort</function>,
<function>sort</function>, <function>asort</function>,
<function>arsort</function>, <function>ksort</function>,
- <function>rsort</function>, <function>natsort</function>
+ <function>natsort</function>, <function>rsort</function>
も参照下さい。
</para>
</refsect1>