ど素人から毛を生やす。<延>

PHPの配列を任意の位置で分割するにはarray_splice()を使えば良かったのか

Web > PHP 2017年9月8日(最終更新:6年前)

2017年9月8日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。

クラス直下の連想配列に、大量の連番な配列を加えなければならなくなり、
そんなモン手書きでやってられっかと配列の任意の場所に配列を加える方法を探しました。

ありました。
[Qiita]PHPで連想配列の任意の位置に要素を挿入・削除する

神かよ。

中身を読んでみたのですが、
ベース配列を挿入する位置の前後で分ける動作をどこで行っているのかがわからず、調べることに。

で、結論としてはarray_splice()がその主犯だったわけなのですが。


$array_base   = [ "A", "B", "C", "D", "E" ]
$array_result = array_splice( $array_base, 2 )

echo $array_base;   // [0]=>A [1]=>B
echo $array_result; // [0]=>C [1]=>D [2]=>E

array_splice()の基本的な挙動
・実行すると、ベースの配列が変更される
・左辺に変数を設けると、ベースの配列から弾かれた要素が格納される

第三引数を設けない(第三引数は削除範囲)と以降全てが削除対象となり、
格納用変数に第二引数後の要素が入る。
また、元の配列は第二引数以前の要素のみが残る。

リファレンス等を見ても「配列の一部を置換する」関数としか書かれていないので、
こんな使い方があったなんて全く知りませんでした。


参考サイト:
[Qiita]PHPで連想配列の任意の位置に要素を挿入・削除する
[Syncer]array_splice() - 配列の一部を置換する

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)