配列に要素を追加
index.php
$text = [];
$array = ["hoge", "piyo"];
$text
に$array
の要素を追加するという処理を書いていきます。
私が当初考えていた処理が次の処理です。
index.php
$text = [];
$array = ["hoge", "piyo"];
foreach ($array as $str) {
$text[] = array_push($text, $str);
}
こちらを実行し$text
をvar_dump()
すると
index.php
array(4) {
[0]=>
string(9) "hoge"
[1]=>
int(1)
[2]=>
string(9) "piyo"
[3]=>
int(3)
}
このような結果が返ってきます。
$text
の[1]と[3]に何やら謎の要素が入ってしまっています。
実はarray_pushは返り値を返すのです。
返り値の値は、array_push
した段階での配列の要素数になります。
index.php
array(4) {
[0]=> // ---------------->①
string(9) "hoge"
[1]=>
int(1)
[2]=> // ---------------->②
string(9) "piyo"
[3]=>
int(3)
}
'hoge'
を①、'piyo'
を②とします。
array_push
で'hoge'
を追加した時点では'hoge'
のみが$text
配列に入っているので、要素数は1
となり、返り値として、1
を返します。
次に'piyo'
を追加した時点では、$text
配列には'hoge'
と1
と'piyo'
が入っており要素数は3
となり返り値として3
を返します。
こちらの処理を想定通りに動作させる為のコードとしては、
index.php
$text = [];
$array = ["hoge", "piyo"];
foreach ($array as $str) {
array_push($text, $str);
}
または、
index.php
$text = [];
$array = ["hoge", "piyo"];
foreach ($array as $str) {
$text[] += $str;
}
とすると良いです。
実行結果を確認すると、
index.php
array(2) {
[0]=>
string(4) "hoge"
[1]=>
string(4) "piyo"
}
きちんと表示されました。
以上、配列に要素を追加するでした。
ご閲覧ありがとうございました。