PHPで配列からnull値を削除する方法【array_filter()の使い方】
PHPで配列からnull値を削除したい場合は、array_filter()関数を使用します。この関数は配列の各要素をフィルタリングし、条件に合わない値を自動的に取り除いてくれます。
array_filter()の基本動作
array_filter()は、コールバック関数を使って配列を絞り込む関数です。コールバックを省略した場合は、「falseと同等(falsy)」と判定されるすべての要素が削除されます。そのため、nullだけでなく、0、空文字列 ""、false、空の配列なども同時に除去される点に注意しましょう。
まず、次のような連想配列を用意します。
$studentDetails = array("firstName" => "John", "lastName" => null);
echo "元の配列の内容:";
print_r($studentDetails);
この配列に対して array_filter() を適用します。
$result = array_filter($studentDetails);
完全なサンプルコード
<!DOCTYPE html>
<html>
<body>
<?php
$studentDetails = array("firstName" => "John", "lastName" => null);
echo "元の配列の内容:";
print_r($studentDetails);
$result = array_filter($studentDetails);
echo "</br>";
echo "nullを削除した後の結果:";
print_r($result);
?>
</body>
</html>
実行結果
元の配列の内容:Array ( [firstName] => John [lastName] => ) nullを削除した後の結果:Array ( [firstName] => John )
実行結果を見ると、値が null だった「lastName」要素が配列から取り除かれ、「firstName」だけが残っていることが確認できます。
押さえておきたいポイント
array_filter()は元のキーを保持します。連想配列でもキーはそのまま残るため、必要に応じてarray_values()でキーを振り直すとよいでしょう。- コールバック省略時は、null 以外に
0や空文字列なども削除されます。nullだけを除去したい場合は、次のようにコールバックを指定します。
$result = array_filter($studentDetails, function ($value) {
return !is_null($value);
});
このように is_null() を組み合わせれば、数値の 0 や空文字列を残しながら、null のみを確実に削除することができます。用途に合わせて使い分けましょう。
-
JavaScriptでテーブルにNULL値が挿入されるのを防ぐ方法
テーブルにNULL値が挿入されるのを防ぐには、値を入力する際に条件チェックを行う必要があります。NULLをチェックする条件は以下のように記述します。while( !( yourVariableName1==null || yourVariableName2==null || yourVariableName3==null……N){ // yourStatement1 . . N }このロジックを使用することで、NULL値が挿入されることを確実に防ぐことができます。次に、forループを使ってNULL値なしでテーブルに値を挿入します。以下がそのコードです。サンプルコ
-
PHPとMySQLでブール値を扱うには?BOOL・BOOLEAN・TINYINT(1)の違いと使い方
本記事では、MySQL 8.0.12を使用して、ブール(Boolean)値の正しい取り扱い方を解説します。まず、使用しているMySQLのバージョンを確認しておきましょう。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec) MySQLにおけるブール値の基本:BOOL・BOOLEAN・TINYINT(1) MySQLでブール値を扱うには、BOOL、BOOLEAN、またはTINYINT(1)のいずれかを使用