PHPでデータを扱う上で配列操作は必須スキルです。
この記事では、配列の「ソート」「検索」「要素削除」の基本テクニックをわかりやすく解説します。
代表的な関数をマスターして、効率的に配列を操作できるようになりましょう。
目次
配列をソートする
sort():値を昇順にソート
$array = [5, 3, 8, 1];
sort($array);
print_r($array); // Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 8 )
配列の要素を値で昇順に並べ替えます。
キーは0からの連番に振り直されるため、キーを保持したい場合は他の関数を使いましょう。
rsort():値を降順にソート
$array = [5, 3, 8, 1];
rsort($array);
print_r($array); // Array ( [0] => 8 [1] => 5 [2] => 3 [3] => 1 )
配列の要素を値で降順に並べ替えます。こちらもキーは0から再割り当てされます。
asort():連想配列の値で昇順ソート(キーを保持)
$array = ['a' => 2, 'b' => 1, 'c' => 3];
asort($array);
print_r($array); // Array ( [b] => 1 [a] => 2 [c] => 3 )
値でソートする点はsortと同じですが、asortはキーを保持したままソートできます。連想配列で値順に並べたいときに便利です。
ksort():連想配列のキーで昇順ソート
$array = ['b' => 1, 'a' => 2, 'c' => 3];
ksort($array);
print_r($array); // Array ( [a] => 2 [b] => 1 [c] => 3 )
連想配列をキーの値を基準に昇順で並べ替えます。連想配列のキー順に要素を整理したいときに使用します。
配列から値を検索する
in_array():配列内に値があるか調べる
$array = ['apple', 'banana', 'orange'];
if (in_array('banana', $array)) {
echo 'バナナが見つかりました!';
}
指定した値が配列内に含まれているかどうかを真偽値で返します。条件分岐に使うことが多いです。
array_search():値のキーを取得する
$array = ['apple', 'banana', 'orange'];
$key = array_search('orange', $array);
if ($key !== false) {
echo "オレンジは配列のインデックス $key にあります。";
}
指定した値が配列内に存在する場合、そのキーを返します。見つからない場合はfalseになります。
配列から要素を削除する
unset():指定のキーを削除
$array = ['apple', 'banana', 'orange'];
unset($array[1]); // bananaを削除
print_r($array); // Array ( [0] => apple [2] => orange )
配列から特定の要素を削除できます。削除後、配列のキーは再構築されません。
array_splice():範囲を指定して削除
$array = ['apple', 'banana', 'orange', 'grape'];
array_splice($array, 1, 2); // index 1から2つ削除
print_r($array); // Array ( [0] => apple [1] => grape )
配列の指定した位置から、指定した数の要素を削除できます。
また、削除した位置に新しい要素を挿入することもできます。
配列操作のまとめ
- ソートはsort, asort, ksortなどを使い分ける
- 検索はin_arrayやarray_searchが便利
- 要素削除はunsetやarray_spliceで対応可能
配列操作をマスターして、PHPでのデータ処理をスムーズに進めましょう!