【PHP8.x】array_push関数の使い方
array_push関数は、一つまたは複数の要素を配列の末尾に追加する関数です。PHPの組み込み関数であり、配列を直接変更します。元の配列が変更されるため、新しい配列を作成するのではなく、既存の配列に要素が追加される点に注意が必要です。
この関数は、少なくとも一つの引数として対象となる配列を受け取り、その後に可変長の引数として追加する要素を受け取ります。複数の要素を一度に追加することが可能です。array_push関数は、要素が追加された後の配列の新しい要素数を返します。もし最初の引数が配列でない場合、array_push関数は警告を発生させます。
具体的な使用例として、 $my_array = [1, 2, 3];
という配列があった場合、array_push($my_array, 4, 5);
を実行すると、$my_array
は [1, 2, 3, 4, 5]
に変更されます。そして、array_push
関数は新しい要素数である5を返します。
array_push関数は、$array[] = $value;
という構文を使用するよりも、複数の要素を追加する場合には効率が良いとされています。ただし、要素を一つだけ追加する場合は、$array[] = $value;
を使用する方が若干高速です。
array_push関数は、配列の操作において頻繁に使用される便利な関数であり、配列への要素追加処理を効率的に行うことができます。
基本的な使い方
構文(syntax)
array_push(array &$array, mixed ...$values): int
引数(parameters)
array &$array, mixed ...$values
- array &$array: 要素を追加する対象となる配列。参照渡しなので、関数の実行後に元の配列が変更されます。
- mixed ...$values: 配列に追加する1つ以上の値。
戻り値(return)
int
配列の末尾に要素を追加した後の、配列の新しい要素数を返します。
サンプルコード
PHP array_push 連想配列に追加する
<?php
declare(strict_types=1);
/**
* array_push() を連想配列に使用する例
*
* この関数は、array_push() が連想配列に対してどのように動作するかを示します。
* array_push() は、キーを指定せずに値を配列の末尾に追加するため、
* 連想配列に使用した場合でも、自動的に数値の添字(0, 1, 2...)が割り当てられます。
*/
function demonstrateArrayPushWithAssociativeArray(): void
{
// 'name' と 'age' という文字列キーを持つ連想配列を準備します。
$userProfile = [
'name' => 'Taro Yamada',
'age' => 30,
];
echo '--- 実行前の配列 ---' . PHP_EOL;
print_r($userProfile);
echo PHP_EOL;
// array_push() を使って2つの値 ('Tokyo', 'Developer') を追加します。
// 追加された値には、文字列キーではなく数値キーが自動で割り振られます。
$newElementCount = array_push($userProfile, 'Tokyo', 'Developer');
echo '--- array_push() 実行後の配列 ---' . PHP_EOL;
print_r($userProfile);
echo PHP_EOL;
// array_push() の戻り値は、値を追加した後の配列の要素数 (int) です。
// 元の2要素 + 追加した2要素 = 4要素
echo "新しい要素数: " . $newElementCount . PHP_EOL;
}
// 関数を実行して結果を確認します。
demonstrateArrayPushWithAssociativeArray();
array_push()
関数は、指定した配列の末尾に1つ以上の値を追加するために使用します。第1引数には、値を加えたい配列を渡します。この引数は参照として扱われるため、関数を実行すると元の配列が直接変更されます。第2引数以降には、追加したい値をカンマ区切りでいくつでも指定できます。
サンプルコードのように、この関数を文字列キーを持つ連想配列に対して使用した場合、追加される値にはキーが指定されません。そのため、PHPによって自動的に0
から始まる数値のキーが割り当てられます。具体的には、'name'
と'age'
のキーを持つ配列に'Tokyo'
と'Developer'
を追加すると、これらの新しい値にはそれぞれ数値キーの0
と1
が設定されます。このように、array_push()
はキーと値のペアを追加するのではなく、単純に配列の末尾に要素を追加する目的で動作します。
関数の戻り値は、全ての値を追加した後の配列の総要素数を整数(int
)で返します。この例では、元の2つの要素に新たに2つの要素が追加されたため、結果として4
が返されます。
array_push
関数を連想配列に使うと、追加する要素にキーを指定することはできません。サンプルコードのように、追加された値には自動的に0から始まる数値キーが割り振られます。このため、文字列キーを持つ連想配列に、特定のキーで値を追加したい場合はこの関数は不向きです。キーと値のペアを追加するには、$array['新しいキー'] = '値';
のように直接代入する方法が適切です。また、この関数は元の配列を直接変更し、戻り値は変更後の配列ではなく新しい要素数(整数)である点にも注意してください。