【6日でできるPHP入門】配列の切り取りと結合

 配列はPHPで複数の値を一つの変数で扱うための重要なデータ構造です。開発をしていると「配列の一部だけを取り出したい」「複数の配列を一つにつなげたい」といったケースが頻繁に発生します。この記事では、配列の一部を切り取る方法と、複数の配列を結合する方法について、具体例を使いながら丁寧に解説します。

1.配列の切り取り

1.1. array_slice関数の基本

配列の一部だけを取り出したい場合は、array_slice関数を利用します。

項目内容
関数名array_slice(配列, 開始位置, 長さ [, 添字保持])
開始位置何番目から取り出すか(0が先頭)
長さ取り出す要素の数
添字保持添字を元のまま保つかどうか(true/false、省略可)

サンプルプログラム

ファイル名: lesson38_1.php

<?php
echo "配列ar1の初期値<br>";
$ar1 = ["猫", "犬", "鳥", "魚", "うさぎ"];
print_r($ar1);
echo "<br>ar2: 2番目から3つ切り取り(添字振りなおし)<br>";
$ar2 = array_slice($ar1, 1, 3); // 添字リセット
print_r($ar2);
echo "<br>ar3: 2番目から3つ切り取り(添字保持)<br>";
$ar3 = array_slice($ar1, 1, 3, true); // 添字保持
print_r($ar3);
?>

実行結果

解説

  • array_slice($ar1, 1, 3)は、2番目(添字1)から3つ要素を取り出し、新しい配列(添字は0から振りなおされる)。
  • array_slice($ar1, 1, 3, true)は、取り出した要素の元の添字をそのまま保持。

1.2. 元の配列は変更されない

array_sliceは元の配列には影響しません。新しい配列が作られるだけなので、安心して利用できます。

2.配列の結合

2.1. array_merge関数の基本

複数の配列を一つにまとめる場合は、array_merge関数を使います。

関数名役割サンプル
array_merge配列を結合して新しい配列を作る。$result = array_merge($a, $b);

サンプルプログラム

ファイル名: lesson38_2.php

<?php
$ar1 = ["りんご", "バナナ"];
$ar2 = ["みかん", "ぶどう", "もも"];
$result = array_merge($ar1, $ar2);
print_r($result);
?>

実行結果

解説

  • $ar1$ar2の要素を一つの配列にまとめている
  • 添字は0から順に振り直される

2.2. 添字の扱いと注意点

  • すべて数値添字なら、0から順に振りなおされる
  • 連想配列の場合はキーが重複すると後ろの配列の値で上書きされる点に注意

3.応用:切り取り+結合の活用例

複数の配列から一部だけ切り取って、さらにそれらを結合することもできます。

サンプルプログラム

ファイル名: lesson38_3.php

<?php
$a = ["A", "B", "C", "D"];
$b = ["E", "F", "G"];
$partA = array_slice($a, 1, 2);   // B, C
$partB = array_slice($b, 0, 2);   // E, F
$merged = array_merge($partA, $partB);
print_r($merged);
?>

実行結果

まとめ

  • 配列の切り取りにはarray_sliceを使い、元の配列を変更せずに一部だけ取得できる。
  • 配列の結合にはarray_mergeを使い、複数の配列を1つにまとめられる。
  • 添字の扱いや連想配列の注意点も理解して使い分けよう。

 配列の切り取りと結合はデータ加工や効率的なプログラミングにとても役立つテクニックです。サンプルをたくさん試しながら、ぜひマスターしてください!