-
- // 和を求める
- function rsum($v, $w)
- {
- return $v; }
-
- // 堆積を求める
- function rmul($v, $w)
- {
- $v を返す }
-
- $a = array(1, 2, 3, 4, 5);
- $b = array_reduce($a, "rsum"); 'result:';
- print_r($b);
- echo '
'
-
- // 上記の出力は、array_sum と同等です
-
- $c = array_reduce($a, "rsum ", 1) ;
- echo 'result:';
- print_r($c);
- echo '
';
-
- // 出力 16、これは array_sum に 1 を加えたものと等価です
-
- $d = array_reduce ($a, "rmul", 10);
- echo 'result:';
- echo '
'
- // 10 * 1 * 2 * 3 に相当* 4 * 5
-
- $d = array_reduce($a, "rmul");
- echo '
';
- echo '
'; to 0 * 1 * 2 * 3 * 4 * 5
-
- $d = array_reduce($x, "rsum", 1);
- echo 'result:';
- print_r($d); // $ から 1 を出力しますxは空なので、初期値を直接返します
-
-
-
- コードをコピー
-
-
-
-
- 2. array_chunk関数
(PHP 4 >= 4.2.0、PHP 5)
array_chunk — 配列を複数に分割する
説明する
array array_chunk ( array$input , int$size [, bool$preserve_keys ] )
array_chunk() は配列を複数の配列に分割します。各配列内のセルの数はサイズによって決まります (つまり、各配列には size 要素があります)。最後の配列には要素が少し少ない場合があります。結果の配列は、インデックスが 0 から始まる多次元配列のセルになります。
オプションのパラメータpreserve_keysをTRUEに設定すると、PHPが入力配列に元のキー名を保持できるようになります。 FALSE を指定すると、各結果配列には 0 から始まる新しい番号でインデックスが付けられます。デフォルト値は FALSE です。
この機能は比較的理解しやすいので、多くは説明しません。
3. array_flip 関数
(PHP 4、PHP 5)
array_flip — 配列内のキーと値を交換する
説明する
配列 array_flip (array$trans)
array_flip() は反転した配列を返します。たとえば、trans のキー名は値になり、trans の値はキー名になります。
trans の値は正当なキー名である必要があることに注意してください。たとえば、整数または文字列である必要があります。値の型が間違っている場合は警告が発行され、問題のキーと値のペアは元に戻されません。
同じ値が複数回出現する場合、最後のキー名がその値として使用され、他のキー名はすべて失われます。
array_flip() は失敗すると FALSE を返します。
注: 重複を削除するには、続けて 2 回呼び出してください。
4. array_filter関数
(PHP 4 >= 4.0.6、PHP 5)
array_filter — コールバック関数を使用して配列内の要素をフィルターする
説明する
array array_filter ( array$input [, callback$callback ] )
array_filter() は、入力配列内の各値をコールバック関数に順番に渡します。コールバック関数が TRUE を返した場合、入力配列の現在の値が返された結果配列に含まれます。配列のキー名は変更されません。
array_filter() の例
function od($var) { return($var % 2 == 1) } function Even($var) - {
- return($var % 2) == 0);
- }
-
- $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"= >5);
- $array2 = array(6, 7, 8, 9, 10, 11, 12);
- echo "奇数:n";
- print_r($array1, "odd"); echo "偶数:n";
- print_r(array_filter($array2, "even"))
- コードをコピーします
出力:
奇数 :
配列
(
[a] => 1
[c] => 3
[e] => 5
)
平:
配列
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
ユーザーはコールバック関数内で配列自体を変更しないでください。たとえば、セルを追加/削除したり、array_filter() によって作用される配列の設定を解除したりします。配列が変更された場合のこの関数の動作は未定義です。
コールバック関数が提供されていない場合、array_filter() は値が FALSE である入力内のすべてのエントリを削除します。詳細については、「ブール値への変換」を参照してください。
-
- $entry = array(
- 0 => 'foo',
- 1 => false,
- 2 => -1,
- 3 => null,
- 4 => ''
- );
- print_r(array_filter($entry))
-
- 上記の出力例:
配列
(
[0] => フー
[2] => -1
)
|