現在の位置: ホーム> 最新記事一覧> array_sliceの長さ0とnullの違い

array_sliceの長さ0とnullの違い

gitbox 2025-05-29

PHPでは、 array_slice関数は、アレイからサブアレイを抽出するために使用される一般的なツールです。その関数プロトタイプは次のとおりです。

 array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)

ここで、パラメーター$の長さを使用して、傍受する要素の数を指定します。ただし、 $の長さ0またはnullの場合、動作は異なります。この記事では、これら2つのケースのarray_sliceの違いを詳細に分析します。

1。基本的な指示

  • $配列:入力配列。

  • $ offset :傍受を開始する場所、負の数がサポートされています。

  • $の長さ:インターセプトされた要素の数、デフォルトのnullは、それが配列の最後に傍受されることを意味します。

  • $ preserve_keys :元の配列のキー名を保持するかどうか。

2。 $ lengthnullの場合

array_sliceを呼び出すと、 $ lengthパラメーターが渡されない場合、または渡された値がnullである場合、phpは$ offsetからArrayの最後まで傍受します。

例:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, NULL);
print_r($result);

出力:

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

説明:インデックス2から開始、アレイの最後まで傍受します。

3。 $ length0の場合

$ lengthが0に明示的に設定されると、 array_sliceは空の配列を返します。つまり、配列がどれだけ長くても、傍受された長さはゼロです。つまり、要素は返されません。

例:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, 0);
print_r($result);

出力:

 Array
(
)

説明:長さを0に指定し、要素を傍受しないでください。

4。概要と比較

長さパラメーター返品結果説明します
ヌルオフセットから配列の終わりまでのすべての要素デフォルトの動作、残りのすべての要素をインターセプトします
0空の配列0の長さを傍受すると、結果は空の配列です

5。実用的なアプリケーションの提案

  • 配列のテールを傍受する場合は、 $ lengthパラメーターを省略するか、 nullを明示的に渡すことをお勧めします。

  • 誤って空のアレイを返すことを避けたい場合は、 $ lestを0に設定しないように注意してください。

  • 動的に渡されたパラメーターの場合、タイプの判断を行い、 0を渡して結果に影響を与えないようにします。

6.追加の例 - キー名を削除します

$arr = ['a' => 1, 'b' => 2, 'c' => 3];
$result = array_slice($arr, 1, NULL, true);
print_r($result);

出力:

 Array
(
    [b] => 2
    [c] => 3
)

ここで、 NULLは、元のキー名を維持しながら、残りのすべての要素を傍受するために渡されます。

7。関連リンク