ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:配列の最初の要素の削除/最後の要素の削除の方法

一見すると選択肢がほぼ同じ選択項目が2箇所あります。
2箇所の選択項目の違いは、1個の選択肢の有無だけです。
一方の選択項目の選択肢の最後にある選択肢が、もう一方の選択項目の選択肢にはありません。
それ以外は選択肢は全く一緒です。

PHPで選択項目の選択肢は定義されています。
配列で選択肢は定義されていて、1個の選択肢の有無だけで2種類の配列を定義していませんでした。
2箇所の選択項目で選択肢の定義を共用するために、異なる部分である最後の要素を削除していました。
最後の要素の削除は、array_pop()を使って以下のように行っていました。

$selectArr = array("a", "b", "c", "end");
$choiceArr = $selectArr;
array_pop($choiceArr);

PHP: array_pop - Manual
array_pop()は、配列の最後の要素を取り出して戻しますが、取り出す際に指定した配列から値を削除するので利用していました。

f:id:AJYA:20180713124508p:plain
unsplash-logoHenri L.

最初の要素を削除するには?

要件が変わって、"end"を"start"に変更して、"start"を最初に持ってこなければならなくなりました。
最後の要素を削除していたのを、最初の要素を削除するようにしなければなりません。
配列の操作の関数は複数あるので、その中からarray_splice()を使うことにしました。
PHP: array_splice - Manual

array_splice()使った配列の最初の要素の削除は、

$selectArr = array("start", "a", "b", "c");
$choiceArr = $selectArr;
array_splice($choiceArr, 0 ,1);

でできました。


配列の途中の要素の削除ではなく、配列の最初の要素の削除だったので、修正は面倒ではありませんでした。