現在の位置: ホーム> 最新記事一覧> array_sliceを使用してアレイのサブセットを作成します

array_sliceを使用してアレイのサブセットを作成します

gitbox 2025-05-28

毎日のPHPプログラミングでは、サブセットデータを表示、ページング、または処理するために、配列から要素の一部を抽出する必要があることがよくあります。 PHPは非常に実用的な機能-Array_slice()を提供します。これは、このタスクを効率的に完了するのに役立ちます。

array_sliceとは何ですか?

array_slice()は、配列からサブアレイを抽出するために使用されるPHPの関数です。元の配列は変更されませんが、インターセプトされた部分の新しい配列を返します。基本的な構文は次のとおりです。

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $配列:元の配列。

  • $ offset :インターセプトを開始する場所。それが負の数である場合、それはアレイの終わりに往復することから始まります。

  • $ length (オプション):傍受する要素の数。省略すると、配列のオフセットから終了まで傍受されます。

  • $ preserve_keys (オプション):元のキー名を保持するかどうか、デフォルトはfalseです。

サンプルの説明

例1:基本的な使用法

$fruits = ['apple', 'banana', 'orange', 'grape', 'melon'];
$sliced = array_slice($fruits, 1, 3);
print_r($sliced);

出力:

 Array
(
    [0] => banana
    [1] => orange
    [2] => grape
)

添え字1から始めて、3つの要素をインターセプトします。 preserve_keysがデフォルトでfalseであるため、キー名は並べ替えられていることに注意してください。

例2:元のキー名を保持します

$fruits = ['a' => 'apple', 'b' => 'banana', 'c' => 'orange', 'd' => 'grape'];
$sliced = array_slice($fruits, 1, 2, true);
print_r($sliced);

出力:

 Array
(
    [b] => banana
    [c] => orange
)

ここでは、 preserve_keysをtrueに設定するため、元の配列のキー名が保存されます。

例3:負のオフセット

$numbers = [10, 20, 30, 40, 50];
$sliced = array_slice($numbers, -3, 2);
print_r($sliced);

出力:

 Array
(
    [0] => 30
    [1] => 40
)

ネガティブオフセットを使用して、アレイの最後にある3番目の最後の要素から2をインターセプトします。

実用アプリケーション:ページネーション処理

データベースから複数の記事タイトルを含む配列を読んで、ページごとに5つのデータを表示するページを実装する必要があるとします。

 $articles = [
    '記事1', '記事2', '記事3', '記事4', '記事5',
    '記事6', '記事7', '記事8', '記事9', '記事10',
    '記事11', '記事12'
];

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$pageSize = 5;
$offset = ($page - 1) * $pageSize;

$pagedArticles = array_slice($articles, $offset, $pageSize);

foreach ($pagedArticles as $article) {
    echo "<p>$article</p>";
}

// サンプルページングリンク
echo '<a href="https://gitbox.net/articles.php?page=1">フロントページ</a> ';
echo '<a href="https://gitbox.net/articles.php?page=2">第2ページ</a> ';
echo '<a href="https://gitbox.net/articles.php?page=3">第3ページ</a>';

上記のコードは、Array_Slice()$ _GETパラメーターと組み合わせて、単純なページング関数を実装し、ページングリンクを生成する方法を示しています。ここのURLはgitbox.netドメイン名を使用していることに注意してください。

まとめ

array_slice()は、配列傍受操作を処理するための不可欠なツールです。柔軟性があり、効率的で、使いやすいです。オフセット、長さ、およびpreserve_keysパラメーターを合理的に使用することにより、さまざまなシナリオに基づいてアレイの必要なサブセットをすばやく取得できます。データページング、リスト表示、またはデータフィルタリングのいずれであろうと、 array_slice()はスキルを披露できます。