PHPで空の配列要素を削除し配列のインデックスを再作成してみます。
今回は、array_filter()関数と、array_values()関数を使用します。array_filter()関数は、配列の値をフィルター処理しますので、空白、null、false、0(ゼロ)の値を削除することができます。array_values()関数は、配列の全ての値を含む配列を返すことができます。これらを組み合わせます。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■空の配列要素を削除し配列のインデックスを再作成する
では、PHPで空の配列要素を削除し配列のインデックスを再作成するスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>空の配列要素を削除し配列のインデックスを再作成する</title>
</head>
<body>
<?php
$str = array("いちご","メロン","すいか","","バナナ",null,0,"パイナップル");
print_r(array_values(array_filter($str)));
?>
</body>
</html>
今回はstrという変数を定義し、その中でarray()関数を使用します。array()関数の括弧内には、要素(値)を入れます。要素(値)には空白、null、0(ゼロ)を入れます。これで配列が作成されます。
作成後、array_filter()関数を使用します。array_filter()関数の括弧内には、引数,パラメータとして、str変数を渡します。これでフィルター処理により、空白、null、0(ゼロ)の値が削除されます。削除後、array_values()関数を使用します。使用したことで、空白、null、false、0(ゼロ)の値が削除された状態の配列に再び「0」から始まり、1ずつ増加する数値キー(インデックス)が割り当てられます。
最後に、「0」から始まり、1ずつ増加する数値キー(インデックス)が割り当てられた配列をprint_r()関数で情報を出力します。
■実行
では、このスクリプトを「reindex_array.php」という名前で保存し、実行させてみます。
実行させてみると、array_filter()関数と、array_values()関数を使用したことで、str変数(配列)の空白、null、0(ゼロ)の値が削除され、配列のインデックスが再び割り当てられて、print_r()関数で出力させることができました。
コメント