見出し画像

[PHP]配列、連想配列の追加・削除・変更の仕方

今回は配列や連想配列の追加、削除、変更などの配列操作を行う関数をまとめました。

何かと配列はよく使うのでこれらの関数を使えるようになるとできることも増えると思います。

配列

まずは、配列の操作をまとめました。

配列の追加

$fruits[] = 'apple';
$fruits[] = 'orange';
$fruits[] = 'banana';
$fruits[] = 'grape';

print_r($fruits);

/* 実行結果 */
Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => grape
)

リスト[] = '要素'とすることで新しいリストと要素の追加を同時に行います。
要素は追加した順で格納されます。

既存のリストに要素を追加する場合も同じように記述します。

$fruits = ['apple', 'orange'];

$fruits[] = 'banana';
$fruits[] = 'grape';

print_r($fruits);

/* 実行結果 */
Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => grape
)

配列の削除

$fruits = ['apple', 'orange', 'banana', 'grape'];

// bananaを削除
unset($fruits[2]);

print_r($fruits);

/* 実行結果 */
Array
(
    [0] => apple
    [1] => orange
    [3] => grape
)

unset()でリストの中の特定の要素を削除することができます。
引数に複数指定することもできます。

しかし、インデックス番号が振り直されることがないので注意が必要です。(上記の例では[0][1][3]と[2]がそのまま抜けている)

では、インデックスを詰めるためにはどうすればいいでしょうか。
色々手段はあると思いますが、今回はarray_values()を使っています。

$fruits = ['apple', 'orange', 'banana', 'grape'];

unset($fruits[2]);
// インデックス番号を詰める
$new_fruits = array_values($fruits);

print_r($new_fruits);

/* 実行結果 */
Array
(
    [0] => apple
    [1] => orange
    [2] => grape
)

array_values()したリストを新たに$new_fruitsに格納してprint_r()すると、きちんとインデックス番号が詰められているのがわかりますね。

unset()とarray_values()を一緒に使うと便利なのでセットで覚えておくといいかもしれません。

配列の変更

$fruits = ['apple', 'orange', 'banana', 'grape'];

$fruits[2] = 'lemon';

print_r($fruits);

/* 実行結果 */
Array
(
    [0] => apple
    [1] => orange
    [2] => lemon
    [3] => grape
)

配列の要素を変更したい場合、インデックス番号を指定することで変更できます。

連想配列

続いて、連想配列の操作です。
普通の配列とは少し勝手が違いますが考え方は同じです。

連想配列の追加

$fruits['リンゴ'] = 'apple';
$fruits['ミカン'] = 'orange';
$fruits['バナナ'] = 'banana';
$fruits['ブドウ'] = 'grape';


print_r($fruits);

/* 実行結果 */
Array
(
    [リンゴ] => apple
    [ミカン] => orange
    [バナナ] => banana
    [ブドウ] => grape
)

連想配列で要素を追加する場合は、「キー」を指定しなければなりません。
「キー」は上記の例で言えば「リンゴ」「ミカン」などです。

既存の連想配列に要素を追加するときも同じように記述できます。

$fruits = array(
  'リンゴ' => 'apple',
  'ミカン' => 'orange',
);

$fruits['バナナ'] = 'banana';
$fruits['ブドウ'] = 'grape';


print_r($fruits);

/* 実行結果 */
Array
(
    [リンゴ] => apple
    [ミカン] => orange
    [バナナ] => banana
    [ブドウ] => grape
)

連想配列の削除

$fruits = array(
    'リンゴ' => 'apple',
    'ミカン' => 'orange',
    'バナナ' => 'banana',
    'ブドウ' => 'grape',
);

// bananaを削除
unset($fruits['バナナ']);

print_r($fruits);

/* 実行結果 */
Array
(
    [リンゴ] => apple
    [ミカン] => orange
    [ブドウ] => grape
)

連想配列で要素を削除したい場合も配列同様、unset()を使えます。

配列とは違ってインデックスを詰める必要はないのでarray_values()を使う必要はありません。

連想配列の変更

$fruits = array(
    'リンゴ' => 'apple',
    'ミカン' => 'orange',
    'バナナ' => 'banana',
    'ブドウ' => 'grape',
);

// orangeを変更
$fruits['ミカン'] = 'ORANGE';

print_r($fruits);

/* 実行結果 */
Array
(
    [リンゴ] => apple
    [ミカン] => ORANGE
    [バナナ] => banana
    [ブドウ] => grape
)

連想配列の特定の要素の値を変更する場合、$fruits['ミカン'] のようにインデックス番号ではなくキーを指定することで可能になります。


今回は配列、連想配列の様々な操作を加える関数をまとめました。

以上です。


この記事が気に入ったらサポートをしてみませんか?