[PHP] 配列から要素を削除し、抜けたキーを詰める
スポンサーリンク
PHPで配列から特定の要素を削除した後に、抜け番となったキーを詰める方法のまとめです。
配列から特定の要素を削除
配列から特定の要素を削除するにはunset()
を使います。
$arr = array("一","二","三"); var_dump( $arr ); //array(5) { [0]=> string(3) "一" [1]=> string(3) "二" [2]=> string(3) "三" } unset($arr[1]); var_dump( $arr ); //array(5) { [0]=> string(3) "一" [2]=> string(3) "三" }
unset($arr[1])
で、$arr
のキー1と、それに紐付けられた要素が削除されました。
抜け番を詰める
この状態ではキーが0, 2と、間が抜けた状態となっています。これを詰めるには配列の結合を行うarray_merge()
か、配列の全ての値を返すarray_values()
を使います。
var_dump( $arr ); //array(5) { [0]=> string(3) "一" [2]=> string(3) "三" } $new_hash = array_merge( $arr ); var_dump( $arr ); //array(5) { [0]=> string(3) "一" [1]=> string(3) "三" } $new_hash = array_values( $arr ); var_dump( $arr ); //array(5) { [0]=> string(3) "一" [1]=> string(3) "三" }
これでキーが新たに0から割り振られ、抜けがなくなった配列が得られました。
スポンサーリンク