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 @@ - + 配列関数(array) Arrays @@ -36,7 +36,9 @@ array array - + mixed + ... + @@ -65,11 +67,13 @@ <function>array</function>の例 + array("a"=>"orange", "b"=>"banana", "c"=>"apple"), "numbers" => array(1, 2, 3, 4, 5, 6), "holes" => array("first", 5 => "second", "third") ); +]]> @@ -77,13 +81,15 @@ <function>array</function> における自動インデックス +1, 4=>1, 19, 3=>13); print_r($array); +]]> - - この例の出力は次のようになります。 - - + + この例の出力は次のようになります。 + + 1 @@ -94,8 +100,10 @@ [8] => 1 [9] => 19 ) - - +]]> + + + インデックス '3' は二度定義されており、後の値 13 が保持されること に注意して下さい。インデックス 4 はインデックス 8 の後に定義され、 次に生成されるインデックス(値は19)は、最大のインデックスが 8 であ @@ -106,27 +114,83 @@ <function>array</function> で1から始まる配列を作成 - $firstquarter = array(1 => 'January', 'February', 'March'); - print_r($firstquarter); + 'January', 'February', 'March'); +print_r($firstquarter); +]]> - - この例の出力は次のようになります。 - - + + この例の出力は次のようになります。 + + 'January' - [2] => 'February' - [3] => 'March' + [1] => 'January' + [2] => 'February' + [3] => 'March' ) - - +]]> + + + - listも参照下さい。 + array_pad, list, + rangeも参照下さい。 + + + + array_change_key_case + + 配列のキーを全て小文字または大文字にして返す + + + + 説明 + + + array array_change_key_case + array input + int + case + + + + + array_change_key_case は、配列 + inputのキーを全て小文字または大文字にします。 + 変更は、オプションの最後のパラメータcaseに依存 + します。ここには、二つの定数CASE_UPPERおよび + CASE_LOWERを指定可能です。デフォルトは、 + CASE_LOWERです。この関数は数値添字はそのままに + します。 + + + <function>array_change_key_case</function>の例 + + 1, "SecOnd" => 4); +print_r(array_change_key_case($input_array, CASE_UPPER); +]]> + + + 上のプログラムの出力は以下のようになります。 + + 1 + [SECOND] => 2 +) +]]> + + + + + @@ -158,18 +222,19 @@ 可能です。&false;を指定した場合、返される各配列ではゼロから始まる 新しい添字が使用されます。デフォルトは、&false;です。 - - - <function>array_chunk</function> の例 - + + <function>array_chunk</function> の例 + + - - 上のプログラムの出力は以下のようになります。 - - +]]> + + + 上のプログラムの出力は以下のようになります。 + + Array @@ -210,9 +275,10 @@ ) ) - - - +]]> + + + @@ -239,15 +305,12 @@ <function>array_count_values</function>の例 +2, "hello"=>2, "world"=>1)を返します +]]> - - - この関数は、PHP 4.0で追加されました。 - - @@ -265,9 +328,7 @@ array array1 array array2 array - - ... - + ... @@ -280,16 +341,33 @@ <function>array_diff</function> の例 + "green", "red", "blue"); $array2 = array ("b" => "green", "yellow", "red"); $result = array_diff ($array1, $array2); +]]> これにより、$result は - array ("blue"); となります。 + array ("blue"); となります。$array1に複数存在 + する場合でも全て同様に処理されます。 + + + 二つの要素は、(string) $elem1 === (string) $elem2 + の場合のみ等しいと見直されます。言い換えると、文字列表現が同じ場合と + なります。 + + + + + + この関数は、PHP 4.0.4では動作しません! + + + array_intersectも参照下さい。 @@ -324,6 +402,7 @@ <function>array_filter</function>の例 +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"); +]]> @@ -346,6 +426,7 @@ り、$even_arrarray (6, 8, 10, 12);となります。 + ¬e.func-callback; array_map, array_reduceも参照下さい。 @@ -356,7 +437,7 @@ array_flip - 配列の値を逆順にする + 配列の値を反転にする 説明 @@ -367,21 +448,45 @@ - array_flip は、配列を逆順にして返します。 + array_flip は、配列を反転して返します。 + すなわち、transのキーは値となり、 + transの値はキーとなります。 + + + transの値は有効なキーを必要とすることに注意して + 下さい。すなわち、キーは、integerまたは + stringである必要があります。ある値が間違った型である場合、 + 警告が出力され、問題のこのキー/値の組は逆順にされません。 + + + ある値が複数回出現した場合、最後のキーがその値として使用され、その他の + 値は失われます。 + + + array_flipは失敗した場合に&false;を返します。 <function>array_flip</function>の例 + + + + + + + <function>array_flip</function>の例 : 衝突 + + 1, "b" => 1, "c" => 2); +$trans = array_flip ($trans); +// ここで$transは次のようになります: array(1 => "b", 2 => "c"); +]]> - - - この関数は、PHP 4.0で追加されました。 - - @@ -412,6 +517,7 @@ <function>array_fill</function> の例 + @@ -443,9 +550,7 @@ array array1 array array2 array - - ... - + ... @@ -458,9 +563,11 @@ <function>array_intersect</function> の例 + "green", "red", "blue"); $array2 = array ("b" => "green", "yellow", "red"); $result = array_intersect ($array1, $array2); +]]> @@ -468,12 +575,73 @@ これにより、$resultarray ("a" => "green", "red");となります。 + + + 二つの要素は、 + (string) $elem1 === (string) $elem2の場合のみ + 等しいとみなされます。言い換えると、文字列表現が同じ場合となります。 + + + + + + この関数はPHP 4.0.4では動作しません! + + + array_diffも参照下さい。 + + + array_key_exists + + 指定したキーまたは添字が配列にあるかどうかを調べる + + + + 説明 + + + bool array_key_exists + mixed key + array search + + + + 指定したkeyが配列に設定されている場合、 + array_key_existsは&true;を返します。 + keyは配列添字として使用できる全ての + 値を使用可能です。 + + + + <function>array_key_exists</function>の例 + + 1, "second" => 4); +if (array_key_exists("first", $search_array)) { + echo "The 'first' element is in the array"; +} +]]> + + + + + + この関数の名前は、PHPバージョン4.0.6では + key_existsです。 + + + + issetも参照下さい。 + + + + array_keys @@ -486,9 +654,7 @@ array array_keys array input mixed - - search_value - + search_value @@ -505,6 +671,7 @@ <function>array_keys</function>の例 + 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") を返します +]]> @@ -525,15 +693,18 @@ PHP 3ユーザ用のarray_keysの実装 + @@ -547,7 +718,9 @@ array_map - 指定した配列の要素にコールバック関数を適用する + + 指定した配列の要素にコールバック関数を適用する + 説明 @@ -572,12 +745,14 @@ <function>array_map</function> の例 + @@ -589,6 +764,7 @@ <function>array_map</function> - より多くの配列を使用 + @@ -664,8 +841,9 @@ - <function>array_map</function> - 配列の配列を作成する + 配列の配列を作成する + @@ -734,10 +913,8 @@ array array_merge array array1 array array2 - - - ... - + array + ... @@ -754,17 +931,19 @@ <function>array_merge</function>の例 + "red", 2, 4); $array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4); -array_merge ($array1, $array2); +$result = array_merge ($array1, $array2); +]]> - - 返される配列は、array("color" => "green", 2, 4, "a", - "b", "shape" => "trapezoid", 4)となります。 - + 返される配列は、array("color" => "green", 2, 4, + "a", "b", "shape" => "trapezoid", 4)となります。 + + array_merge_recursiveも参照下さい。 @@ -782,10 +961,8 @@ array array_merge_recursive array array1 array array2 - - - ... - + array + ... @@ -805,17 +982,20 @@ <function>array_merge_recursive</function>の例 -$ar1 = array("color" => array("favorite" => "red"), 5); -$ar2 = array(10, "color" => array("favorite" => "green", "blue")); -$result = array_merge_recursive($ar1, $ar2); + array ("favorite" => "red"), 5); +$ar2 = array (10, "color" => array ("favorite" => "green", "blue")); +$result = array_merge_recursive ($ar1, $ar2); +]]> - - 返される配列は、array("color" => array("favorite" => - array("red", "green"), "blue"), 5, 10)となります。 - + 返される配列は、array ("color" => array + ("favorite" => array ("red", "green"), "blue"), 5, 10) + となります。 + + array_mergeも参照下さい。 @@ -833,14 +1013,13 @@ bool array_multisort array ar1 mixed - - arg - + arg - - - ... - + mixed + ... + + array + ... @@ -893,36 +1072,43 @@ およびSORT_REGULARにリセットします。 - 成功時に&true;、失敗した場合に - &false;を返します。 + 成功時に&true;、失敗した場合に&false;を返します。 - - 複数の配列をソートする - + + + 複数の配列をソートする + + - - この例では、ソートの後で、最初の配列は、10,"a", 100, 100となりま - す。2番目の配列は、1, 1, "2", 3を有します。最初の配列(100および - 100)の同じエントリに対応している2番目の配列のエントリは同時にソー - トされます。 - - - - - 多次元の配列をソートする - -$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); - - - この例では、ソートされた後、最初の配列は10,100, 100, "a" (文字列 - として昇順っ½ートされています)を有しており、2番目の配列は、 - 1, 3, "2", 1 (数値として降順にソートされています)となっています。 - - +]]> + + + + + この例では、ソートの後で、最初の配列は、10,"a", 100, 100となりま + す。2番目の配列は、1, 1, "2", 3を有します。最初の配列(100および + 100)の同じエントリに対応している2番目の配列のエントリは同時にソー + トされます。 + + + + 多次元の配列をソートする + + + + + + + この例では、ソートされた後、最初の配列は10,100, 100, "a" (文字列 + として昇順でソートされています)を有しており、2番目の配列は、 + 1, 3, "2", 1 (数値として降順にソートされています)となっています。 + @@ -955,6 +1141,7 @@ <function>array_pad</function>の例 + @@ -990,27 +1178,23 @@ は、要素一つ分短くなります。array が空の場 合、(または、配列でない場合、)&null;が返されます。 - - - <function>array_pop</function>の例 - + + <function>array_pop</function>の例 + + - - これにより、$stackの要素は二つ("orange"および "apple")だけとなり、 - $fruit は"raspberry"となります。 - - +]]> + + + + これにより、$stack要素は二つ("orange"および + "apple")だけとなり、$fruitは"raspberry"となります。 + &return.falseproblem; array_push,array_shift, array_unshiftも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1027,10 +1211,8 @@ int array_push array array mixed var - - - ... - + mixed + ... @@ -1041,8 +1223,11 @@ arrayの長さは渡された変数の数だけ増加します。 各var毎に以下を繰り返すことと同じ効果があります。 + + 各varで繰り返されます。 処理後の配列の中の要素の数を返します。 @@ -1051,20 +1236,20 @@ <function>array_push</function>の例 + - この例の結果、$stackには、4つの要素1,2,"+",3があることになります。 + + + この例の結果、$stackには、4つの要素1,2,"+", + 3があることになります。 array_pop,array_shift, array_unshiftも参照下さい。 - - - この関数は、 PHP 4.0で追加されました。 - - @@ -1081,9 +1266,7 @@ mixed array_rand array input int - - num_req - + num_req @@ -1109,11 +1292,13 @@ <function>array_rand</function>の例 -srand((double)microtime() * 10000000); -$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); -$rand_keys = array_rand($input, 2); + @@ -1146,20 +1331,24 @@ <function>array_reverse</function>の例 + + + この例において、$resultは、array (array ("green", "red"), 4.0, "php")となります。しかし、 $result2[0]はまだ"php"です。 - - - この関数は、PHP 4.0ベータ3で追加されました。 - - + + + 2番目のパラメータは、PHP 4.0.3で追加されました。 + + @@ -1184,17 +1373,17 @@ - array_reduce applies iteratively the - callback function to the elements of the - array input, so as to reduce the array to - a single value. If the optional intial is - avaliable, it will be used at the beginning of the process, or as - a final result in case the array is empty. + array_reduceは、配列input + の各要素にcallback関数を繰り返し適用し、 + 配列を一つの値に減らします。オプションintial + が利用可能な場合、処理の最初で使用されたり、配列が空の場合の最終結果 + として使用されます。 - <function>array_reduce</function> example + <function>array_reduce</function>の例 + - This will result in $b containing - 15, $c containing - 1200 (= 1*2*3*4*5*10), and - $d containing 1. + これにより、$bの値は15 + となり、$cの値は + 1200 (= 1*2*3*4*5*10)、そして、 + $dの値は1となります。 - See also array_filter, - array_map. + array_filter, + array_mapも参照下さい。 @@ -1250,22 +1440,19 @@ <function>array_shift</function>の例 + - これにより、$argsには一つの要素"-f"が残り、$optは - "-v"となります。 + これにより、$argsには一つの要素"-f"が残り、 + $optは"-v"となります。 array_unshift, array_push, array_popも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1283,9 +1470,7 @@ array array int offset int - - length - + length @@ -1311,22 +1496,19 @@ <function>array_slice</function>の例 + array_spliceも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1344,14 +1526,10 @@ array input int offset int - - length - + length array - - replacement - + replacement @@ -1392,11 +1570,13 @@ 以下は等価となります。 + @@ -1406,25 +1586,29 @@ <function>array_splice</function>の例 -$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") となります。 + array_sliceも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1452,6 +1636,7 @@ <function>array_sum</function> の例 +1.2,"b"=>2.3,"c"=>3.4); echo "sum(b) = ".array_sum($b)."\n"; // 出力: sum(b) = 6.9 +]]> + + + 4.0.6より前のバージョンのPHPは、渡された配列自体を修正し、文字列を + 数値(これは値にもよるが多くの場合ゼロとなります)に変換していました。 + + @@ -1481,21 +1673,69 @@ array_unique は、 arrayを入力とし、値に重複のない新規配列を - 返します。キーは保持されることに注意して下さい。 + 返します。 + + + キーは保持されることに注意して下さい。 + array_uniqueは各値に関する最初のキーを保持し、 + 残りのキーを全て無視します。 + + + (string) $elem1 === (string) $elem2の場合のみ + 二つの要素は等しいとみなされます。言い換えると、文字列表現が + 同じ場合となります。 + + + + 最初の要素が使用されます。 + + + + + この関数は、PHP 4.0.4では使用できません! + + + <function>array_unique</function> の例 + "green", "red", "b" => "green", "blue", "red"); $result = array_unique ($input); +print_r($result); +// 出力は次のようになります : +//Array +//( +// [a] => green +// [0] => red +// [1] => blue +//) +]]> - この例により、$result は、 - array ("a" =>"green", "red", "blue");を有する - ことになります。 + + <function>array_unique</function>と型 + + + int(4) + [1]=> + string(1) "3" +} +*/ +]]> + + @@ -1503,7 +1743,7 @@ array_unshift - 一つ以上の要素を 配列の 最初に加える + 一つ以上の要素を配列の最初に加える 説明 @@ -1512,10 +1752,8 @@ int array_unshift array array mixed var - - - ... - + mixed + ... @@ -1531,22 +1769,19 @@ <function>array_unshift</function>の例 -$queue = array("p1", "p3"); -array_unshift($queue, "p4", "p5", "p6"); + - この例により、$queue の要素は次の5つとなります。: "p4", "p5", "p6", - "p1", "p3" + この例により、$queueの要素は次の5つとなります。 + : "p4", "p5", "p6", "p1", "p3" array_shift, array_push, array_popも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1572,15 +1807,37 @@ <function>array_values</function>の例 + "XL", "color" => "gold"); array_values($array); // array("XL", "gold")を返します +]]> - - - この関数は、PHP 4.0で追加されました。 - - + + + + この関数は、PHP 4.0で追加されました。以下の実装はPHP 3でも + 使用することが可能です。 + + + PHP 3ユーザ用の<function>array_values</function>の実装 + + + + + + + + + array_keysも参照下さい。 @@ -1599,22 +1856,31 @@ int array_walk array arr string func - mixed userdata + mixed + userdata + arrの各要素にfunc - という名前の関数を適用します。 + という名前のユーザ定義関数を適用します。 funcには、配列の値が最初の引数として 渡され、配列のキーが2番目のパラメータとして渡されます。 userdataが指定された場合、3番目の引数として - ユーザー関数に渡されます。 + ユーザー関数に渡されます。funcはユーザ定義の + 関数である必要があり、ネーティブなPHP関数は使用できません。 + つまり、array_walkを直接 + str2lowerと組み合わせることて使用することは + できません。まず、この関数を用いてユーザ定義関数を構築し、その関数 + を引数として渡す必要があります。 + + ¬e.func-callback; + funcが2つまたは3つを超える引数を必要とする場合、 userdataの指定によっては、 array_walkfunc - をコールする度に警告が生成されます。 - これらの警告は、array_walkの前に - '@'マークを付けるか + をコールする度に警告が生成されます。これらの警告は、 + array_walkの前に'@'マークを付けるか error_reportingを使用することにより 抑制されます。 @@ -1625,11 +1891,15 @@ 渡す必要があります。この場合、配列の要素に加えた変更は、配列自体 に対して行われます。 + + funcの中から配列を修正すると予測できない + 動作を引き起こす可能性があります。 + キー及びuserdataをfuncに渡す処理は、 - バージョン 4.0で追加されました。 + バージョン4.0で追加されました。 PHP 4では、array_walkで配列のリセットがデフォ @@ -1641,14 +1911,15 @@ <function>array_walk</function>の例 +"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
\n"; } array_walk ($fruits, 'test_print'); @@ -1656,6 +1927,7 @@ array_walk ($fruits, 'test_alter', 'fruit'); reset ($fruits); array_walk ($fruits, 'test_print'); +]]>
@@ -1670,7 +1942,7 @@ arsort - 連想キーと要素との関係を維持しつつ配列を逆順にソートします + 連想キーと要素との関係を維持しつつ配列を逆順にソートする @@ -1680,9 +1952,7 @@ void arsort array array int - - sort_flags - + sort_flags @@ -1690,24 +1960,32 @@ この関数は、連想配列において各配列のキーと要素との関係を維持しつ つソートを行います。この関数は、主に実際の要素の並び方が重要であ る連想配列をソートするために使われます。 - - <function>arsort</function>の例 - + + + <function>arsort</function>の例 + +"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"; } - - - この例は、以下のように出力されます。 - -fruits[a] = orange -fruits[d] = lemon -fruits[b] = banana -fruits[c] = apple - +]]> + + + この例は、以下のように出力されます。 + + + + + + fruitsはアルファベットの逆順にソートされ、各要素とキーとの関係は 維持されます。 @@ -1727,7 +2005,9 @@ asort - 連想キーと要素との関係を維持しつつ配列をソートします + + 連想キーと要素との関係を維持しつつ配列をソートする + 説明 @@ -1736,9 +2016,7 @@ void asort array array int - - sort_flags - + sort_flags @@ -1746,24 +2024,32 @@ この関数は、連想配列において各配列のキーと要素との関係を維持しつ つ配列をソートします。この関数は、主に実際の要素の並び方が重要で ある連想配列をソートするために使われます。 - - <function>asort</function>の例 - + + + <function>asort</function>の例 + +"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"; } - - - この例は、以下のように出力されます。 - -fruits[c] = apple -fruits[b] = banana -fruits[d] = lemon -fruits[a] = orange - +]]> + + + この例は、以下のように出力されます。 + + + + + + fruitsはアルファベットの昇順にソートされ、各要素とキーとの関係は 維持されます。 @@ -1791,12 +2077,9 @@ array compact - string varname | array - varnames - - - ... - + mixed varname + mixed + ... @@ -1820,6 +2103,7 @@ <function>compact</function>の例 + - この例により、$resultは、array("event" => "SIGGRAPH", "city" - => "San Francisco", "state" => "CA")となります。 + この例により、$resultは、 + array + ("event" => "SIGGRAPH", "city" => "San Francisco", + "state" => "CA")となります。 extractも参照下さい。 - - - この関数は、PHP 4.0で追加されました。 - - @@ -1864,43 +2146,52 @@ ありませんから)。 - 変数が配列でない場合は1を返します。 + 変数が配列でない場合は1を返します。 + (例外: count(&null;)0と等価) + + + countは、セットされていない変数に関して0を返 + しますが、変数が空の配列として初期化されている場合にも0を返します。 + ある変数がセットされているかどうかを調べるには、 + issetを使用してください。 + + - 変数がセットされていない場合は0を返します。 - - - countは、セットされていない変数に関して0を返 - しますが、変数が空の配列として初期化されている場合にも0を返します。 - ある変数がセットされているかどうかを調べるには、 - issetを使用してください。 - - + 配列の実装やPHPでの使用法に関する詳細な説明についてはマニュアルの + 配列のセクションを + 参照下さい。 <function>count</function> の例 + + + + + sizeof関数は、count + へのエイリアスです。 + + - sizeof, isset, - is_arrayも参照下さい。 + is_array, isset, + strlenも参照下さい。 @@ -1908,7 +2199,7 @@ current - 配列内の現在の要素を返す + 配列内のカレントの要素を返す 説明 @@ -1919,7 +2210,7 @@ - 各配列は、"現在"の要素へのポインタを有しています。 + 各配列は、"カレント"の要素へのポインタを有しています。 このポインタは、その配列の最初の要素を指すように初期化されます。 @@ -1960,7 +2251,7 @@ - 配列arrayから、次のキャh値のペアを返し、 + 配列arrayから、次のキーと値のペアを返し、 配列カーソルを進めます。このペアは、4つの要素を持つ配列で、 それぞれの要素は0,1, key,valueというキーを有 @@ -1976,32 +2267,35 @@ <function>each</function>の例 + $barは、ここでは以下のキー/値のペアを保持し ています。 - 0 => 0 - 1 => 'bob' - key => 0 - value => 'bob' + 0 => 0 + 1 => 'bob' + key => 0 + value => 'bob' - + "Bob", "Seppo" => "Sepi"); $bar = each ($foo); +]]> $barは、この時点で以下のキー/値のペアを保持 しています。 - 0 => 'Robert' - 1 => 'Bob' - key => 'Robert' - value => 'Bob' + 0 => 'Robert' + 1 => 'Bob' + key => 'Robert' + value => 'Bob' @@ -2009,24 +2303,27 @@ 通常eachは、配列の走査をす?_っk listと共に使用されます。例えば、 - $HTTP_POST_VARSの場合は次のよFになります。 + $HTTP_POST_VARSの場合は次のようになります。 <function>each</function>により$HTTP_POST_VARSを走査する -echo "POSTメソッドにより受け渡された値:<br>"; +"; reset ($HTTP_POST_VARS); while (list ($key, $val) = each ($HTTP_POST_VARS)) { - echo "$key => $val<br>"; + echo "$key => $val
"; } +]]>
eachを実行した後、配列カーソルは、 - 配列の次の要素に移動し~す。配列の最終要素にカーソルがある場合は、 - 最終要素にとどまります。 + 配列の次の要素に移動します。配列の最終要素にカーソルがある場合は、 + 最終要素にとどまります。eachを使用して配列を走査するには、 + resetを使用する必要があります。 keylist、 @@ -2178,8 +2475,9 @@ <function>extract</function>の例 -<?php - + +]]> 上記の例の結果は以下となります。 + - EXTR_PREFIX_SAMEを指定したため、$sizeは上書きされず、$wddx_size - が作成されます。 + EXTR_PREFIX_SAMEを指定したため、$sizeは上書き + されず、$wddx_sizeが作成されます。 EXTR_SKIPが指定された場合、$wddx_sizeは作成されません。EXTR_OVERWRITE - の場合は、$sizeの値は"medium"となります。EXTR_PREFIX_ALLの場合は - 新規の変数 $wddx_color, $wddx_size, $wddx_shapeが作成されます。 + の場合は、$sizeの値は"medium"となります。 + EXTR_PREFIX_ALLの場合は新規の変数$wddx_color, + $wddx_size, $wddx_shape + が作成されます。 連想配列を使用する必要があり、数値添字の配列には結果は出力されま @@ -2237,8 +2540,7 @@ haystackneedleを検索し、配列にそれがあった場合に - &true;、それ以外の場合は、 - &false;を返します。 + &true;、それ以外の場合は、&false;を返します。 3番目のパラメータstrictが @@ -2246,14 +2548,25 @@ in_arrayは、haystack の中の needleの型も確認します。 + + + needleが文字列の場合、比較の際に大文字小文字 + は区別されます。 + + <function>in_array</function>の例 + @@ -2261,18 +2574,20 @@ strictを指定した<function>in_array</function>の例 -<?php + -// この例は以下のような出力となります。 +// 以下のような出力となります。 1.13 found with strict check +]]> @@ -2296,14 +2611,15 @@ mixed array_search mixed needle array haystack - bool strict + bool + strict + haystackにおいて needleを検索し、配列中に見付かった場合にそ - のキーを返します。そうでない場合に&false;を返し - ます。 + のキーを返します。そうでない場合に&false;を返します。 3番目のパラメータstrictが @@ -2312,6 +2628,7 @@ haystackの中にある needleの型も確認します。 + &return.falseproblem; in_arrayも参照下さい。 @@ -2366,21 +2683,31 @@ <function>krsort</function>の例 +"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); krsort ($fruits); reset($fruits); while(list($key,$val)=each($fruits)) { echo "$key -> $val\n"; } +]]> +
+ この例の出力は次のようになります。 - -fruits[d] = lemon -fruits[c] = apple -fruits[b] = banana -fruits[a] = orange - + + + + + + + オプションのパラメータsort_flagsによりソー @@ -2390,7 +2717,7 @@ asort, arsort, ksort, sort, - rsortも参照下さい。 + natsort, rsortも参照下さい。
@@ -2419,28 +2746,37 @@ <function>ksort</function>の例 +"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"; } +]]> + + この例では以下のように出力が行われます。 - -fruits[a] = orange -fruits[b] = banana -fruits[c] = apple -fruits[d] = lemon - + + + + + + + オプションのパラメータsort_flagsによりソー トの動作を修正可能です。詳細については、sort を参照下さい。 - asort, arsort, sort, natsort, @@ -2476,25 +2812,27 @@ <function>list</function>の例 -<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"); + + + 社員名 + 給料 + + +\n". + " $name\n". + " $salary\n". + " \n"); } ?> -</table> + +]]> @@ -2531,8 +2869,9 @@ <function>natsort</function>の例 -$array1 = $array2 = array ("img12.png","img10.png","img2.png","img1.png"); - + @@ -2549,6 +2889,7 @@ + img10.png [0] => img12.png ) +]]> より詳細な情報については、Martin Poolの array range - int low - int high + mixed low + mixed high rangeは、lowから highまでの整数の配列を返します。 + low > highの場合、順番はhighからlowとなります。 + + <function>range</function>の例 + + + + + + + 4.1.0より前のバージョンでは、range関数は、 + 昇順の整数配列のみを生成しました。文字シーケンス及び降順の配列 + のサポートが4.1.0で追加されました。 + + + デクリメントする範囲及び文字シーケンスの模擬 + + + + + - 使用例については、shuffleを参照下さい。 + その他の使用例については、shuffleを参照下さい。 @@ -2770,12 +3152,8 @@ resetは、配列の最初の要素の値を返します。 - current, - each, - next - prev, - reset - も参照下さい。 + current, each, + next, prevも参照下さい。 @@ -2803,21 +3181,33 @@ <function>rsort</function>の例 + $val\n"; +reset ($fruits); +while (list ($key, $val) = each ($fruits)) { + echo "$key = $val\n"; } +]]> - この例では以下のように表示します。 - -fruits[0] = orange -fruits[1] = lemon -fruits[2] = banana -fruits[3] = apple - + + + この例の出力は以下のようになります。 + + + + + + + + + fruitsはアルファベットの逆順にソートされました。 @@ -2853,21 +3243,21 @@ <function>shuffle</function>の例 + arsort,asort, ksort,rsort, - natsort, natcasesort, - sort,usort, - uksortも参照下さい。 + sort,usortも参照下さい。 @@ -2919,29 +3309,33 @@ <function>sort</function>の例 -<?php + +]]> - この例では以下のように表示します。 + この例の出力は以下のようになります。 + @@ -3013,6 +3407,7 @@ 参照下さい。
+ ¬e.func-callback; usort, uksort, sort, asort, @@ -3043,10 +3438,11 @@ この関数は、ユーザー定義の比較関数を用いて配列のキーをソートします。 ソートしたい配列を複雑な基準でソートする必要がある場合には、 この関数を使う必要があります。 - - - <function>uksort</function>の例 - + + + <function>uksort</function>の例 + + $b) ? -1 : 1; @@ -3059,21 +3455,30 @@ while (list ($key, $value) = each ($a)) { echo "$key: $value\n"; } - - +]]> + + + この例による出力は以下のようになります。 - + + + + + +]]> + + + ¬e.func-callback; usort, uasort, sort, asort, arsort, ksort, - rsort, natsort + natsort, rsort も参照下さい。 @@ -3092,7 +3497,7 @@ void usort array array - function cmp_function + string cmp_function @@ -3101,13 +3506,20 @@ この関数を使用するべきです。 - 比較関数は、最初の引数が二番目の引数より小さいか等しいか大きい場合に - それぞれゼロ未満、ゼロに等しい、ゼロより大きい整数を返します。二つの - メンバーの?較結果が等しいとなった場合、ソートされた配列の順番は定義 - されません。 + 比較関数は、最初の引数が2番目の引数より小さいか、等しいか、大きい + 場合に、それぞれゼロ未満、ゼロに等しい、ゼロより大きい整数を返す + 必要があります。2つのメンバーの比較結果が等しいとなった場合、 + ソートされた配列の順番は定義されません。 + + + 比較関数としてあるオブジェクトのメンバー関数を使用することも可能です。 + 以下の例3を参照下さい。 + + <function>usort</function>の例 + $b) ? -1 : 1; @@ -3120,6 +3532,7 @@ while (list ($key, $value) = each ($a)) { echo "$key: $value\n"; } +]]> @@ -3129,24 +3542,27 @@ + もちろん、このような簡単な例ではrsort関数 - の方がよォiしfいます。 + の方がより適当です。 多次元配列を使用する<function>usort</function>の例 + @@ -3173,26 +3590,76 @@ + - - - (Solarisシステムのような)いくつかのCライブラリに含まれる - quicksort関数は、比較関数が適当な値を返さない場合にPHPをクラッ - シュさせる可能性があります。 - - + + + <function>usort</function>でオブジェクトのメンバ関数を使用する例 + + +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"; +} +]]> + + + + + この例の出力は以下のようになります。 + + + + +b +c +d + + + + + (Solarisシステムのような)いくつかのCライブラリに含まれる + quicksort関数は、比較関数が適当な値を返さない場合にPHPをクラッ + シュさせる可能性があります。 + + uasort, uksort, sort, asort, arsort, ksort, - rsort, natsort + natsort, rsort も参照下さい。