MW211 EXIT

devlog
PHP配列/先頭と末尾を取得(1)
2012年09月07日
配列の先頭のデータを取得する関数。
┌──────────────────────────────────────┐
│array_shift($配列);                                                         │
└──────────────────────────────────────┘
配列の末尾のデータを取得する関数。
┌──────────────────────────────────────┐
│array_pop($配列);                                                           │
└──────────────────────────────────────┘
これらは、添字が連番じゃない時とか、非常に便利だ。

た・だ・し、重大な欠点がある。
取得した値を配列から除去してしまうという作用だ。
元々、そういう目的の関数を参照用に流用しているだけの話だ。

じゃどうすればよいか。
一旦、値渡しで何らかの一時配列に渡して、後は好きにやってくれってのが思い当たる。
┌──────────────────────────────────────┐
│$ワーク = $配列;                                                            │
│array_pop($ワーク);                                                         │
└──────────────────────────────────────┘

でも、なんかまどろっこしい。
一行でやれないものか。。。

ダミーで一関数噛ませてやって、ワーク変数的に扱えばいいじゃん。
ってことで、人畜無害な足し算関数「array_merge()」を使用。
┌──────────────────────────────────────┐
│array_pop(array_merge($配列));                                              │
└──────────────────────────────────────┘

しかしながら、敵もさるもの、ワーニングを吐いてしまう。
┌──────────────────────────────────────┐
│Strict Standards: Only variables should be passed by reference in …        │
└──────────────────────────────────────┘

う~ん、これでどうだ。(なんか無理やり)
┌──────────────────────────────────────┐
│@array_pop(array_merge($配列));                                             │
└──────────────────────────────────────┘
分類:PHP配列