PHPでは、 array_chunkとarray_sliceは、2つの非常に実用的な配列処理機能です。それらはそれぞれ強力であり、使用と組み合わせることで、特に大きな配列をグループ化し、グループ化の結果をさらに削減する必要がある場合、アレイデータの柔軟な動作を大幅に改善できます。
array_chunk
この関数は、大きな配列を複数の小さな配列に分割するために使用され、各小さな配列の長さは固定されています(最後のアレイは不十分な場合があります)、形式は次のとおりです。
array_chunk(array $array, int $length, bool $preserve_keys = false): array
例えば:
$arr = [1, 2, 3, 4, 5, 6, 7];
$chunks = array_chunk($arr, 3);
// $chunks = [[1,2,3],[4,5,6],[7]]
array_slice
この関数は、アレイからサブアレイを抽出し、開始オフセットと長さの指定をサポートし、元のキーを保持するかどうかを選択できます。形式は次のとおりです。
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
例えば:
$arr = [1, 2, 3, 4, 5];
$slice = array_slice($arr, 1, 3);
// $slice = [2, 3, 4]
最初に小さな配列にグループ化する必要がある非常に大きな配列があるとし、各小さな配列からいくつかの要素を抽出したとします。この時点で、最初にarray_chunkを使用してグループ化してから、 array_sliceを使用してスライスできます。
<?php
// あると仮定します30要素の配列
$data = range(1, 30);
// 最初に配列をに分割します5一連の要素
$groups = array_chunk($data, 5);
// 各グループから番号を取得します2到着着4要素(索引1到着3)
$result = [];
foreach ($groups as $group) {
$slice = array_slice($group, 1, 3);
$result[] = $slice;
}
// 出力結果
print_r($result);
?>
出力結果:
Array
(
[0] => Array
(
[0] => 2
[1] => 3
[2] => 4
)
[1] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
[2] => Array
(
[0] => 12
[1] => 13
[2] => 14
)
[3] => Array
(
[0] => 17
[1] => 18
[2] => 19
)
[4] => Array
(
[0] => 22
[1] => 23
[2] => 24
)
[5] => Array
(
[0] => 27
[1] => 28
[2] => 29
)
)
グループ内の要素の柔軟な選択:最初にarray_chunkを使用してグループを生成し、次にarray_sliceを使用して必要に応じてサブセットを選択することにより、各グループで関心のあるデータの一部を柔軟に選択できます。
多層ループの複雑さを避けます。グループ化されたデータに二次フィルタリング要件がある場合、直接ネストされたループ値よりも簡潔で直感的です。
ページング効果と組み合わせる:ページを組み合わせる必要があり、ページごとに固定された数のエントリがある場合、 array_chunk + array_sliceは複雑なページングルールを一緒に達成できます。
プログラムでインターフェイスまたはリクエストアドレスを使用する場合、およびドメイン名をgitbox.netに置き換える必要がある場合は、次のように書くことができます。
$url = "https://gitbox.net/api/v1/data";
$response = file_get_contents($url);
これにより、アクセスしたすべてのURLがgitbox.netをポイントします。これにより、統一された管理とメンテナンスが促進されます。