
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 @@
arrayの例
+ 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 @@
array における自動インデックス
+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 @@
array で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です。この関数は数値添字はそのままに
+ します。
+
+
+ array_change_key_caseの例
+
+ 1, "SecOnd" => 4);
+print_r(array_change_key_case($input_array, CASE_UPPER);
+]]>
+
+
+ 上のプログラムの出力は以下のようになります。
+
+ 1
+ [SECOND] => 2
+)
+]]>
+
+
+
+
+
@@ -158,18 +222,19 @@
可能です。&false;を指定した場合、返される各配列ではゼロから始まる
新しい添字が使用されます。デフォルトは、&false;です。
-
-
- array_chunk の例
-
+
+ array_chunk の例
+
+
-
- 上のプログラムの出力は以下のようになります。
-
-
+]]>
+
+
+ 上のプログラムの出力は以下のようになります。
+
+ Array
@@ -210,9 +275,10 @@
)
)
-
-
-
+]]>
+
+
+
@@ -239,15 +305,12 @@
array_count_valuesの例
+2, "hello"=>2, "world"=>1)を返します
+]]>
-
-
- この関数は、PHP 4.0で追加されました。
-
-
@@ -265,9 +328,7 @@
array array1
array array2
array
-
- ...
-
+ ...
@@ -280,16 +341,33 @@
array_diff の例
+ "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 @@
array_filterの例
+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_arr は
array (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;を返します。
array_flipの例
+
+
+
+
+
+
+ array_flipの例 : 衝突
+
+ 1, "b" => 1, "c" => 2);
+$trans = array_flip ($trans);
+// ここで$transは次のようになります: array(1 => "b", 2 => "c");
+]]>
-
-
- この関数は、PHP 4.0で追加されました。
-
-
@@ -412,6 +517,7 @@
array_fill の例
+
@@ -443,9 +550,7 @@
array array1
array array2
array
-
- ...
-
+ ...
@@ -458,9 +563,11 @@
array_intersect の例
+ "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);
+]]>
@@ -468,12 +575,73 @@
これにより、$result は
array ("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は配列添字として使用できる全ての
+ 値を使用可能です。
+
+
+
+ array_key_existsの例
+
+ 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 @@
array_keysの例
+ 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 @@
array_map の例
+
@@ -589,6 +764,7 @@
array_map - より多くの配列を使用
+
@@ -664,8 +841,9 @@
- array_map - 配列の配列を作成する
+ 配列の配列を作成する
+
@@ -734,10 +913,8 @@
array array_merge
array array1
array array2
-
-
- ...
-
+ array
+ ...
@@ -754,17 +931,19 @@
array_mergeの例
+ "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 @@
array_merge_recursiveの例
-$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 @@
array_padの例
+
@@ -990,27 +1178,23 @@
は、要素一つ分短くなります。array が空の場
合、(または、配列でない場合、)&null;が返されます。
-
-
- array_popの例
-
+
+ array_popの例
+
+
-
- これにより、$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 @@
array_pushの例
+
- この例の結果、$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 @@
array_randの例
-srand((double)microtime() * 10000000);
-$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
-$rand_keys = array_rand($input, 2);
+
@@ -1146,20 +1331,24 @@
array_reverseの例
+
+
+
この例において、$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
+ が利用可能な場合、処理の最初で使用されたり、配列が空の場合の最終結果
+ として使用されます。
- array_reduce example
+ array_reduceの例
+
- 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 @@
array_shiftの例
+
- これにより、$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 @@
array_sliceの例
+
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 @@
array_spliceの例
-$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 @@
array_sum の例
+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では使用できません!
+
+
+
array_unique の例
+ "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");を有する
- ことになります。
+
+ array_uniqueと型
+
+
+ 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 @@
array_unshiftの例
-$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 @@
array_valuesの例
+ "XL", "color" => "gold");
array_values($array); // array("XL", "gold")を返します
+]]>
-
-
- この関数は、PHP 4.0で追加されました。
-
-
+
+
+
+ この関数は、PHP 4.0で追加されました。以下の実装はPHP 3でも
+ 使用することが可能です。
+
+
+ PHP 3ユーザ用のarray_valuesの実装
+
+
+
+
+
+
+
+
+ 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_walkがfunc
- をコールする度に警告が生成されます。
- これらの警告は、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 @@
array_walkの例
+"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 @@
この関数は、連想配列において各配列のキーと要素との関係を維持しつ
つソートを行います。この関数は、主に実際の要素の並び方が重要であ
る連想配列をソートするために使われます。
-
- arsortの例
-
+
+
+ arsortの例
+
+"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 @@
この関数は、連想配列において各配列のキーと要素との関係を維持しつ
つ配列をソートします。この関数は、主に実際の要素の並び方が重要で
ある連想配列をソートするために使われます。
-
- asortの例
-
+
+
+ asortの例
+
+"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 @@
compactの例
+
- この例により、$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での使用法に関する詳細な説明についてはマニュアルの
+ 配列のセクションを
+ 参照下さい。
count の例
+
+
+
+
+ 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 @@
eachの例
+
$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の場合は次のようになります。
eachにより$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を使用する必要があります。
key、list、
@@ -2178,8 +2475,9 @@
extractの例
-<?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 @@
haystackで
needleを検索し、配列にそれがあった場合に
- &true;、それ以外の場合は、
- &false;を返します。
+ &true;、それ以外の場合は、&false;を返します。
3番目のパラメータstrictが
@@ -2246,14 +2548,25 @@
in_arrayは、haystack
の中の needleの型も確認します。
+
+
+ needleが文字列の場合、比較の際に大文字小文字
+ は区別されます。
+
+
in_arrayの例
+
@@ -2261,18 +2574,20 @@
strictを指定したin_arrayの例
-<?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 @@
krsortの例
+"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 @@
ksortの例
+"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 @@
listの例
-<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 @@
natsortの例
-$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となります。
+
+ rangeの例
+
+
+
+
+
+
+ 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 @@
rsortの例
+ $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 @@
shuffleの例
+
arsort,asort,
ksort,rsort,
- natsort, natcasesort,
- sort,usort,
- uksortも参照下さい。
+ sort,usortも参照下さい。
@@ -2919,29 +3309,33 @@
sortの例
-<?php
+
+]]>
- この例では以下のように表示します。
+ この例の出力は以下のようになります。
+
@@ -3013,6 +3407,7 @@
参照下さい。
+ ¬e.func-callback;
usort, uksort,
sort, asort,
@@ -3043,10 +3438,11 @@
この関数は、ユーザー定義の比較関数を用いて配列のキーをソートします。
ソートしたい配列を複雑な基準でソートする必要がある場合には、
この関数を使う必要があります。
-
-
- uksortの例
-
+
+
+ uksortの例
+
+ $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を参照下さい。
+
+
usortの例
+ $b) ? -1 : 1;
@@ -3120,6 +3532,7 @@
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
+]]>
@@ -3129,24 +3542,27 @@
+
もちろん、このような簡単な例ではrsort関数
- の方がよォiしfいます。
+ の方がより適当です。
多次元配列を使用するusortの例
+
@@ -3173,26 +3590,76 @@
+
-
-
- (Solarisシステムのような)いくつかのCライブラリに含まれる
- quicksort関数は、比較関数が適当な値を返さない場合にPHPをクラッ
- シュさせる可能性があります。
-
-
+
+
+ usortでオブジェクトのメンバ関数を使用する例
+
+
+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
も参照下さい。