ホームページ  >  記事  >  バックエンド開発  >  PHP 関数の実践的なヒント: array_chunk()

PHP 関数の実践的なヒント: array_chunk()

王林
王林オリジナル
2023-06-20 08:58:373812ブラウズ

PHP 言語の Array (配列) は、複数のデータを格納し、バッチ操作を実行するために使用できる非常に実用的なデータ型です。ただし、処理を向上させるために、大きな配列を複数の小さな配列に分割する必要がある場合があります。このとき、PHP関数のarray_chunk()が便利です。この記事では、array_chunk() 関数を使用して配列のチャンク化操作を実行する方法といくつかの実践的なヒントを紹介します。

1. array_chunk() 関数の概要

array_chunk() 関数は、配列を指定されたサイズのチャンクに分割し、2 次元配列を返します。関数の定義は次のとおりです:

array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )

パラメータの説明:

  • $array : 必須。ブロックに分割される配列。
  • $size: 必須。各ブロックの長さを指定する整数。
  • $preserve_keys: オプション。元の配列のキー名を保持するかどうかを示すブール値。デフォルトは false、つまり保持されません。

この関数は 2 次元配列を返します。各サブ配列の長さは $size で、最後のサブ配列の長さは $size 未満である可能性があります。

2. array_chunk() 関数の例

array_chunk() 関数の使用法をよりよく理解するために、次の例を見てみましょう。

まず、10 個の要素を含む配列を定義します。

<?php
  $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
?>

array_chunk() 関数を使用して、長さ 3 の小さな配列に分割できます。

<?php
  $result = array_chunk($arr, 3);
  print_r($result);
?>

Result As

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => i
        )

    [3] => Array
        (
            [0] => j
        )

)

ご覧のとおり、元の配列は長さ 3 の 4 つのサブ配列に分割されています。元の配列には要素が 1 つだけ残っているため、最後の部分配列には要素が 1 つだけあります。

3. array_chunk() 関数の実践スキル

  1. 配列のページング

array_chunk() 関数を使用して、配列のページネーションと分割を行うことができます。各ページへのデータエントリの数は、各ブロックの長さとして指定されます。合計50個のデータを1ページあたり10個に分割して5ページに表示するなど、簡易的なページングシステムを作成する場合に非常に便利です。

<?php
  $arr = range(1,50);
  $pages = array_chunk($arr,10);
  print_r($pages);
?>

結果は次のとおりです。

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
            [5] => 6
            [6] => 7
            [7] => 8
            [8] => 9
            [9] => 10
        )

    [1] => Array
        (
            [0] => 11
            [1] => 12
            [2] => 13
            [3] => 14
            [4] => 15
            [5] => 16
            [6] => 17
            [7] => 18
            [8] => 19
            [9] => 20
        )

    [2] => Array
        (
            [0] => 21
            [1] => 22
            [2] => 23
            [3] => 24
            [4] => 25
            [5] => 26
            [6] => 27
            [7] => 28
            [8] => 29
            [9] => 30
        )

    [3] => Array
        (
            [0] => 31
            [1] => 32
            [2] => 33
            [3] => 34
            [4] => 35
            [5] => 36
            [6] => 37
            [7] => 38
            [8] => 39
            [9] => 40
        )

    [4] => Array
        (
            [0] => 41
            [1] => 42
            [2] => 43
            [3] => 44
            [4] => 45
            [5] => 46
            [6] => 47
            [7] => 48
            [8] => 49
            [9] => 50
        )

)

各ページに 10 個のデータが含まれるのと同様に、各サブ配列には 10 個の要素が含まれます。

  1. 配列の分割

カンマで区切られた文字列があり、それを配列に分割し、毎回 10 個の要素を分割したいとします。この操作を実行するには、array_chunk() 関数を使用します。

<?php
  $str = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20";
  $arr = explode(',', $str);
  $result = array_chunk($arr, 10);
  print_r($result);
?>

結果は次のとおりです:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
            [5] => 6
            [6] => 7
            [7] => 8
            [8] => 9
            [9] => 10
        )

    [1] => Array
        (
            [0] => 11
            [1] => 12
            [2] => 13
            [3] => 14
            [4] => 15
            [5] => 16
            [6] => 17
            [7] => 18
            [8] => 19
            [9] => 20
        )

)
  1. 配列のランダムな並べ替え

配列内の要素の順序を乱したい場合は、次のことができます。最初に array_chunk() を使用します。配列をブロックに分割し、次に各ブロックの要素をシャッフルし、最後にすべてのブロックの要素を結合してランダムな並べ替えを完了します。

<?php
  $arr = range(1, 20);
  $chunk_arr = array_chunk($arr, 5);
  foreach ($chunk_arr as $key => &$value) {
    shuffle($value);
  }
  $result = call_user_func_array('array_merge', $chunk_arr);
  print_r($result);
?>

結果は次のとおりです:

Array
(
    [0] => 1
    [1] => 4
    [2] => 2
    [3] => 3
    [4] => 5
    [5] => 9
    [6] => 10
    [7] => 7
    [8] => 6
    [9] => 8
    [10] => 11
    [11] => 12
    [12] => 14
    [13] => 13
    [14] => 16
    [15] => 15
    [16] => 17
    [17] => 20
    [18] => 19
    [19] => 18
)

最初に元の配列を長さ 5 の 4 つのサブ配列に分割し、次に各サブ配列をスクランブルおよびソートし、最後に array_merge を使用しました。 () この関数はすべての部分配列をマージし、元の配列の順序を崩します。

4. 概要

array_chunk() 関数は、PHP 言語の非常に実用的な関数で、大きな配列を複数の小さな配列に分割するのに役立ち、論理処理に便利な方法を提供します。 . とても便利です。この記事では、array_chunk() 関数の機能と使用法を紹介し、配列のチャンク化に関するいくつかの実践的なヒントを共有します。この記事が PHP 言語の学習者にとって役立つことを願っています。

以上がPHP 関数の実践的なヒント: array_chunk()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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