[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から割り振られ、抜けがなくなった配列が得られました。
スポンサーリンク