毎日のPHPプログラミングでは、サブセットデータを表示、ページング、または処理するために、配列から要素の一部を抽出する必要があることがよくあります。 PHPは非常に実用的な機能-Array_slice()を提供します。これは、このタスクを効率的に完了するのに役立ちます。
array_slice()は、配列からサブアレイを抽出するために使用されるPHPの関数です。元の配列は変更されませんが、インターセプトされた部分の新しい配列を返します。基本的な構文は次のとおりです。
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$配列:元の配列。
$ offset :インターセプトを開始する場所。それが負の数である場合、それはアレイの終わりに往復することから始まります。
$ length (オプション):傍受する要素の数。省略すると、配列のオフセットから終了まで傍受されます。
$ preserve_keys (オプション):元のキー名を保持するかどうか、デフォルトはfalseです。
$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であるため、キー名は並べ替えられていることに注意してください。
$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に設定するため、元の配列のキー名が保存されます。
$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()はスキルを披露できます。