【PHP】配列から空の要素(null・空文字列)を削除する方法
PHPで配列から空の要素(null、空文字列など)を削除したい場合は、foreachループとempty()関数、unset()関数を組み合わせることで実現できます。以下に具体的なサンプルコードを示します。
サンプルコード
<?php
$my_array = array("This", 91, '', null, 102, "is", false, "a", "sample", null);
foreach($my_array as $key => $val)
if(empty($val))
unset($my_array[$key]);
echo "配列からnull値を削除した後の要素は以下の通りです -<br>";
foreach($my_array as $key => $val)
echo ($my_array[$key] ."<br>");
?>出力結果
配列からnull値を削除した後の要素は以下の通りです - This 91 102 is a sample
コードの解説
まず、文字列・数値・null値が混在した配列「$my_array」を定義します。次にforeachループで配列の各要素を順番に走査し、empty()関数で値が空かどうかを判定します。empty()はnullだけでなく、空文字列("")、0、falseなども「空」とみなすため、これらの要素はすべてunset()関数によって配列から削除されます。最後に、処理後の配列を再度ループで出力すると、null値などの空要素が取り除かれた状態になっていることが確認できます。
補足:array_filter()を使った簡潔な書き方
より短く記述したい場合は、array_filter()関数を利用する方法もあります。コールバック関数を指定せずに呼び出すと、falseと評価されるすべての要素(null、0、""、falseなど)が自動的に除外されます。
<?php
$my_array = array("This", 91, '', null, 102, "is", false, "a", "sample", null);
$result = array_filter($my_array);
print_r($result);
?>ただし、array_filter()は元の配列を変更せず、フィルタリング済みの新しい配列を返すという点に注意してください。用途に応じて、ループで直接削除する方法と使い分けるとよいでしょう。
-
PHPのmax()関数とは?最大値を取得する方法を実例付きで解説
PHPのmax()関数は、配列または複数の引数の中から最大値を返す組み込み関数です。数値だけでなく文字列も比較できるため、データの中で最も大きい値を簡単に取得したいときに便利です。 構文 max(arr_values); または max(val1, val2, ...); パラメータ arr_values − 値が格納された配列。 val1, val2, ... − 比較対象となる複数の値。 戻り値 max()関数は、渡された値の中で最も大きい(最大の)値を返します。引数に配列を指定した場合は、その配列内の最大値を返します。 使用例:複数の値を直接渡す まず、複数の値を引数として直
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に