【PHP】配列の基本ガイド: 使い方やメソッドを解説

配列は、複数のデータを一つの変数で管理できるデータ構造です。例えば、複数の果物の名前を保存したい場合、配列を使えば一つの変数にすべての名前を格納できます。

配列の宣言

配列の定義は、以下のように行います。

[要素1, 要素2,…]

$fruitList = ['apple', 'grape', 'orange'];

または

array(要素1, 要素2,…)

$fruitList = array('apple', 'grape', 'orange');

どちらの定義方法でも同じ結果になります。

以下のようにstringやint、bool型などを同じ配列にまとめることが可能です。(あまりおすすめはしません)

$my_array = [123, 'grape', True];

要素の追加

1つ追加する

1つだけ要素を追加する場合、以下のように記述します。

配列[] = 要素

$fruitList = ['apple', 'grape', 'orange'];
$fruitList[] = 'banana';
var_export($fruitList);

出力

array (
  0 => 'apple',
  1 => 'grape',
  2 => 'orange',
  3 => 'banana',
)
var_export関数

変数の値や配列の内容を分かりやすく表示してくれます。

参考リンク
PHP: var_export – Manual

複数追加する

複数の要素を追加する場合、array_push関数を使います。

array_push(対象の配列, 追加要素1, 追加要素2, …)

$fruitList = ['apple', 'grape', 'orange'];
array_push($fruitList, 'banana', 'kiwi');
var_export($fruitList);

出力

array (
  0 => 'apple',
  1 => 'grape',
  2 => 'orange',
  3 => 'banana',
  4 => 'kiwi',
)

配列の途中に追加する

配列の途中に追加するには、array_splice関数を使います。

array_splice(対象の配列, 追加するインデックス, 0, 要素)

$fruitList = ['apple', 'grape', 'orange'];
array_splice($fruitList, 1, 0, 'banana');
var_export($fruitList);

出力

array (
  0 => 'apple',
  1 => 'banana',
  2 => 'grape',
  3 => 'orange',
)

要素の変更

各要素の変更は、[インデックス] = 要素 で行います。

配列[インデックス] = 要素

$fruitList = ['apple', 'grape', 'orange'];
$fruitList[0] = 'lemon';
var_export($fruitList);

出力

array (
  0 => 'lemon',
  1 => 'grape',
  2 => 'orange',
)

要素の削除

要素の削除にはunset関数を使います。

unset(配列要素)

$fruitList = ['apple', 'grape', 'orange'];
unset($fruitList[1]);
var_export($fruitList);

出力

array (
  0 => 'apple',
  2 => 'orange',
)

要素は削除できたのですが、インデックスが[0, 2]という歯抜けの状態になっています。
インデックスの歯抜け状態を解消するには、array_values関数でインデックスを振りなおす必要があります。

$fruitList = ['apple', 'grape', 'orange'];
unset($fruitList[1]);
$fruitList = array_values($fruitList);
var_export($fruitList);

配列のインデックスを上記の例では、インデックスを振り直した$fruitListを再代入しています。

出力

array (
  0 => 'apple',
  1 => 'orange',
)

要素へのアクセス

各要素へのアクセス

各要素へのアクセスは、[] で行います。

配列[インデックス]

$fruitList = ['apple', 'grape', 'orange'];
print $fruitList[0];

出力

'apple'

すべての要素へのアクセス

foreach文によるアクセス

foreach文を使うと、配列の先頭から順にアクセスできます。構文は以下のようになります。

foreach(配列 as $value) {
// 処理
}

$value変数にアクセスする要素が順に代入されていきます。
要素を先頭から出力するコードは以下になります。

$fruitList = ['apple', 'grape', 'orange'];
foreach($fruitList as $fruit) {
    print $fruit . PHP_EOL;
}

出力

'apple'
'grape'
'orange'

$fruitListの先頭から順に取得した$fruitを、改行文字(PHP_EOL)と併せて出力しています。

for文によるアクセス

下記のコードは全要素を先頭から順番に出力しています。

$fruitList = ['apple', 'grape', 'orange'];
$fruitListCount = count($fruitList);
for($i = 0; $i < $fruitListCount; $i++) {
    print $fruitList[$i] . PHP_EOL;
}

count関数によって、$fruitListの要素の個数を$fruitListCountに格納しています。

count関数

配列の要素数をint型で返します。

// 使用例
$array = ['a', 'b', 'c'];
print count($array); // 出力:3

参考リンク
PHP: count – Manual

foreach文と比較すると、インデックスの指定や要素数など必要な記述が多くなります。ですが、foreach文以上に柔軟な記述が可能です。

まとめ

配列要素の削除など、PHPでは特殊な記述が必要なことがあります。そのような一連の処理を関数でまとめると扱いやすくなるので、実装してみるのもおすすめです。

コメント