読者です 読者をやめる 読者になる 読者になる

phpで配列に要素を追加する方法

$array[] = array();
$array[] = "hoge";
$array[] = "huga";

これ見て何が起こると思いますか?

なんと、["hoge", "huga"] が出来上がる!つまり配列に要素を追加するんです。

他のプロジェクトの子プロジェクトみたいなものを担当することになり、 ソース読んでてびっくりしました。

うーん、、javascriptのpushみたいのないのかな?と思ってマニュアル見たらありました。

PHP: array_push - Manual

ふぅー、よかったよかった、これを使おう!と思ったら

注意: もし配列にひとつの要素を加えるために array_push() を使用するなら、 関数を呼ぶオーバーヘッドがないので、$array[] = を使用するほうがいいです。

えー!むしろ注意された! どっちを使うべきだろうか。。関数を呼ぶオーバーヘッドがどれくらいか分からないけど、読みやすいし、array_push($array, "hoge"); の方を使いたいなー。

追記

formのcheckboxとかで同じ名前で配列で値をとってくるgetのパラメータを見てて、 $array[] ="" という書き方で配列の要素を追加を表そうと思った人の気持ちが分かってきたかも。 例えば、

<form>
<input type="checkbox" name="lists[]" value="1">
<input type="checkbox" name="lists[]" value="2">
<input type="checkbox" name="lists[]" value="3">
</form>

だったら、GETのqueryはこのようになる。

?lists[]=1&lists[]=2&lists[]=3

そう、考えると、 $lists[]=4ってやったら、配列の要素が1つ追加されてもいいような気がする。