ホームページ  >  記事  >  バックエンド開発  >  PHP のいくつかの配列関数の理解

PHP のいくつかの配列関数の理解

WBOY
WBOYオリジナル
2016-07-25 09:07:24877ブラウズ
  1. // 和を求める
  2. function rsum($v, $w)
  3. {
  4. return $v; }
  5. // 堆積を求める
  6. function rmul($v, $w)
  7. {
  8. $v を返す }
  9. $a = array(1, 2, 3, 4, 5);
  10. $b = array_reduce($a, "rsum"); 'result:';
  11. print_r($b);
  12. echo '
    '
  13. // 上記の出力は、array_sum と同等です
  14. $c = array_reduce($a, "rsum ", 1) ;
  15. echo 'result:';
  16. print_r($c);
  17. echo '
    ';
  18. // 出力 16、これは array_sum に 1 を加えたものと等価です
  19. $d = array_reduce ($a, "rmul", 10);
  20. echo 'result:';
  21. echo '
    '
  22. // 10 * 1 * 2 * 3 に相当* 4 * 5
  23. $d = array_reduce($a, "rmul");
  24. echo '
    ';
  25. echo '
    '; to 0 * 1 * 2 * 3 * 4 * 5
  26. $d = array_reduce($x, "rsum", 1);
  27. echo 'result:';
  28. print_r($d); // $ から 1 を出力しますxは空なので、初期値を直接返します
  29. コードをコピー
  30. 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)
  1. {
  2. return($var % 2) == 0);
  3. }
  4. $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"= >5);
  5. $array2 = array(6, 7, 8, 9, 10, 11, 12);
  6. echo "奇数:n";
  7. print_r($array1, "odd"); echo "偶数:n";
  8. print_r(array_filter($array2, "even"))
  9. コードをコピーします
  10. 出力: 奇数 : 配列 ( [a] => 1 [c] => 3 [e] => 5 ) 平: 配列 ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )

    ユーザーはコールバック関数内で配列自体を変更しないでください。たとえば、セルを追加/削除したり、array_filter() によって作用される配列の設定を解除したりします。配列が変更された場合のこの関数の動作は未定義です。

    コールバック関数が提供されていない場合、array_filter() は値が FALSE である入力内のすべてのエントリを削除します。詳細については、「ブール値への変換」を参照してください。

    1. $entry = array(
    2. 0 => 'foo',
    3. 1 => false,
    4. 2 => -1,
    5. 3 => null,
    6. 4 => ''

    7. );
    8. print_r(array_filter($entry))
    9. 上記の出力例: 配列 ( [0] => フー [2] => -1 )

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。