PHP
PHPでの未入力チェック方法(多重配列対応)
ヤス
更新日:2021/08/05
PHPでの未入力(空文字)チェックは0とスペースの判定に困ります。
配列の場合や、スペースのみの入力の場合も未入力(空文字)チェックを行ないたい
PHPの未入力(空文字)チェックには、empty()やisset()、is_null()などの関数がよく使用されますが、入力値が 0 やスペースのみの場合に、意図しない判定になってしまうことがあります。
また、チェックする値が配列の場合は上記の関数だけではチェックできないため、別途対応が必要になります。
PHPの関数のみでは、うまく対応できなかったため、配列に対応した未入力(空文字)チェック関数を自作してみました。
スペースのみの入力も未入力(空文字)と判定したかったため、mb_convert_kana()とtrim()関数でスペースのみの入力を除去しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public function isExistData($check_data){ //確認する値が配列の場合 if(is_array($check_data)){ foreach ($check_data as $value) { //確認する値が配列の場合、再度関数を呼び出す if(is_array($value)){ if($this -> isExistData($value)){ return TRUE; } //値の未入力チェック }else{ $value = trim(mb_convert_kana($value,"s")); if($value != ''){ return TRUE; } } } //値の未入力チェック }else{ $check_data = trim(mb_convert_kana($check_data,"s")); if($check_data != ''){ return TRUE; } } return FALSE; } |