現在の位置: ホーム> 最新記事一覧> ARSAY_CHUNKは、連想配列を処理するときに適用されますか?

ARSAY_CHUNKは、連想配列を処理するときに適用されますか?

M66 2025-04-25

PHPでは、 array_chunk関数を使用して、配列を複数の小さなアレイに分割します。通常、それを使用して数値インデックスアレイを分割します。ただし、連想配列に対処する場合、多くの開発者が質問をしています。Array_chunk関数はキー名を保持しますか?この質問に対する答えは次のとおりです。

array_chunk関数の紹介

まず、 array_chunk関数の使用方法をすばやく確認しましょう。 array_chunkの基本的な使用法は次のとおりです。

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $配列:分割する必要がある元の配列。

  • $サイズ:各サブアレイのサイズ。

  • $ preserve_keys :元の配列のキー名を保持するかどうか、デフォルトでfalseになります。

$ preserve_keysがtrueに設定されている場合、 array_chunkは元の配列にキー名を保持します。 false (デフォルトがfalse )に設定されている場合、キー名は再インデックスされます。

連想配列を扱うときのキー名の動作

いくつかの具体的な例を使用して、 array_chunkを使用して配列を関連付けるときにキー名が保存されるかどうかを確認しましょう。

例1:キー名は保持されません

$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$result = array_chunk($array, 2);
print_r($result);

出力の結果は次のとおりです。

 Array
(
    [0] => Array
        (
            [0] => apple
            [1] => banana
        )
    [1] => Array
        (
            [0] => cherry
            [1] => date
        )
)

キー名が失われており、結果のキーが0から再インデックスされていることがわかります。

例2:予約されたキー名

$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'date'
];

$result = array_chunk($array, 2, true);
print_r($result);

出力の結果は次のとおりです。

 Array
(
    [0] => Array
        (
            [a] => apple
            [b] => banana
        )
    [1] => Array
        (
            [c] => cherry
            [d] => date
        )
)

この例では、キー名は保存され、 array_chunkは各サブアレイを元のキー名で返します。

連想配列を分割するのに適していますか?

array_chunkは連想配列を分割するのに役立ちますが、その動作に注意してください。元のキー名を保存する場合は、3番目のパラメーター$ preserve_keysをtrueに設定する必要があります。それ以外の場合は、キー名が再インネックスされます。これは、キー名を保持する必要があるシナリオには適していない場合があります。

また、キー名を保持する必要がなく、配列コンテンツの分割にのみ集中する必要がある場合は、デフォルトの動作で十分です。

要約します

  • array_chunkはデフォルトでキー名を保持せず、サブアレイのキーを再インデックスします。

  • キー名を保持する必要がある場合は、 $ preserve_keysパラメーターをtrueに設定して実行できます。

  • 連想配列を分割するとき、 array_chunkは完全に適用可能ですが、ニーズに応じてキー名を保持するかどうかを決定する必要があります。

コードに関与するURL交換の例

次のように、コードでURLを使用するとします。

 $url = 'https://m66.net/page';
$parsed_url = parse_url($url);
print_r($parsed_url);