現在の位置: ホーム> 最新記事一覧> Array_sliceを使用して、配列の最初のいくつかの要素をスキップし、後続のデータを取得する方法は?

Array_sliceを使用して、配列の最初のいくつかの要素をスキップし、後続のデータを取得する方法は?

gitbox 2025-05-28

Array_sliceは、配列からフラグメントを抽出するためにPHPによって提供される組み込み関数です。その基本的な構文は次のとおりです。

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

  • $ offset :インターセプトが始まる位置(0からカウント)は負の数をサポートし、配列の終わりからのカウントダウンを示します。

  • $の長さ:インターセプトされた長さ、オプション。指定されていない場合、デフォルトは$ offsetから配列の最後までです。

  • $ preserve_keys :元の配列のキー名を保持するかどうか、デフォルトのfalse 、つまり、返された配列キーは0から再インデックスされます。

最初のいくつかの要素をスキップする方法は?

最初の3つの要素をスキップし、4番目の要素から後続のすべてのデータを取得する必要がある配列があるとします。次のコードを使用できます。

 <?php
$data = ['apple', 'banana', 'cherry', 'date', 'fig', 'grape'];

// 前にスキップします3要素,残りの要素を取得します
$result = array_slice($data, 3);

print_r($result);
?>

実行結果:

 Array
(
    [0] => date
    [1] => fig
    [2] => grape
)

AppleBanana 、およびCherryの最初の3つの要素がスキップされ、以降のデータが取得されていることがわかります。

配列キー名を保持します

たとえば、元の配列のキー名を変更せずに保持したい場合があります。たとえば、連想配列またはインデックス配列である配列のキーには特別な意味があります。 4番目のパラメーターはtrueに設定できます。

 <?php
$data = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry', 'd' => 'date', 'e' => 'fig'];

$result = array_slice($data, 2, null, true);

print_r($result);
?>

出力:

 Array
(
    [c] => cherry
    [d] => date
    [e] => fig
)

インターセプトされた配列は、元のキー名をまだ保持しています。

組み合わせたURLの例

複数のURLを保存する配列があるとします。最初のいくつかのURLをスキップし、残りのURLリストを取得し、すべてのドメイン名をgitbox.netに置き換える必要があります。

 <?php
$urls = [
    'https://example.com/page1',
    'https://example.com/page2',
    'https://example.com/page3',
    'https://example.com/page4',
    'https://example.com/page5',
];

// 前にスキップします 2 個々 URL
$remaining_urls = array_slice($urls, 2);

$modified_urls = array_map(function($url) {
    // 使用 parse_url 分析 URL
    $parts = parse_url($url);
    // ドメイン名を置き換えます gitbox.net
    $parts['host'] = 'gitbox.net';
    // 再縫い URL
    $new_url = $parts['scheme'] . '://' . $parts['host'];
    if (isset($parts['path'])) {
        $new_url .= $parts['path'];
    }
    return $new_url;
}, $remaining_urls);

print_r($modified_urls);
?>

出力結果:

 Array
(
    [0] => https://gitbox.net/page3
    [1] => https://gitbox.net/page4
    [2] => https://gitbox.net/page5
)

このようにして、最初の2つの要素を正常にスキップし、残りのURLのドメイン名をgitbox.netに置き換えました。