php 指定した範囲の値を取得する

  • 作成日 2021.09.12
  • php
php 指定した範囲の値を取得する

phpで、array_sliceを使用して、指定した範囲の値を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

array_slice使い方

array_sliceを使用すれば、指定した範囲の値を取得することが可能です。

array_slice(配列,開始位置);
// 開始位置は0から

以下は、配列の値を開始位置を指定して取得するサンプルコードとなります。

<?php

$arr = [1, 2, 3, 4, 5];

// 開始位置2 から 最後の5 まで
$result = array_slice($arr,1);

print_r($result);

実行結果

Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
)

取得する数を指定することも可能です。数は、第三引数に指定します。

<?php

$arr = [1, 2, 3, 4, 5];

// 開始位置2 から 2つ
$result = array_slice($arr,1,2);

print_r($result);

実行結果

Array
(
    [0] => 2
    [1] => 3
)

範囲を超えてもエラーにならず、最大まで取得されます。

<?php

$arr = [1, 2, 3, 4, 5];

// 開始位置2 から 10つ
$result = array_slice($arr, 1, 10);

print_r($result);

実行結果

Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
)

また、開始位置をマイナスにすると後ろから数えることが可能です。

<?php

$arr = [1, 2, 3, 4, 5];

// 開始位置4 から 2つ
$result = array_slice($arr,-2,2);

print_r($result);

実行結果

Array
(
    [0] => 4
    [1] => 5
)

また、インデックス番号を保持したい場合は、第四引数に「true」を指定します。

<?php

$arr = [1, 2, 3, 4, 5];

// 開始位置2 から 2つ
$result = array_slice($arr, 1, 2, true);

print_r($result);

実行結果

Array
(
    [1] => 2
    [2] => 3
)