【问题标题】:how to make 1 condition for 3 arrays in 1 function?如何在 1 个函数中为 3 个数组创建 1 个条件?
【发布时间】:2014-11-08 21:14:02
【问题描述】:

这个函数是这样工作的,但我想得到一个条件而不是 3 所以 问题是如何将这 3 个条件变成相同 3 个数组的 1 个条件:函数中的“Name”、“Nachname”和“Ort”?

感谢您的帮助!

function check($felder = array()) {

$de = "<h2>Deine Eingaben:</h2>";
$probleme = array();


if ($_SERVER["REQUEST_METHOD"] == "POST") {


if (empty($felder["name"])) {
 $probleme['name2'] = 'n/a';
 $probleme['name'] = "Name ist auskunftspflichtig";
} else {
 $probleme['name2'] = test_input($felder["name"]);
 if (!preg_match("/^[a-zA-Z ]*$/",$probleme['name2'])) {
   $probleme['name'] .= "Nur buchstaben und Leerzeichen sind erlaubt";
 }
}

if (empty($felder["nachname"])) {
 $probleme['nachname2'] = 'n/a';
 $probleme['nachname'] = "Nachname ist auskunftspflichtig";
} else {
 $probleme['nachname2'] = test_input($felder["nachname"]);
 if (!preg_match("/^[a-zA-Z ]*$/",$probleme['nachname2'])) {
   $probleme['nachname'] .= "Nur buchstaben und Leerzeichen sind erlaubt";
 }
}

if (empty($felder["ort"])) {
 $probleme['ort2'] = 'n/a';
 $probleme['ort'] = "Ort ist auskunftspflichtig";
} else {
 $probleme['ort2'] = test_input($felder["ort"]);
 if (!preg_match("/^[a-zA-Z ]*$/",$probleme['ort2'])) {
   $probleme['ort'] .= "Nur buchstaben und Leerzeichen sind erlaubt";
 }
}

}
return $probleme;
}

【问题讨论】:

  • 只需遍历['name', 'nachname', 'ort'] 并使所有条件都依赖于此。
  • 您当前的功能是什么样的,或者更确切地说,它是什么样的?请告诉我们您在创建此函数时遇到的实际问题

标签: php arrays multiple-conditions


【解决方案1】:

请试试这个

function check($felder = array()) {
  $de = "<h2>Deine Eingaben:</h2>";
  $probleme = array();
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    for ($i = 0; $i < count($felder); $i++) {
      if (empty($felder[$i])) {
          $probleme[$felder[$i].'2'] = 'n/a';
          $probleme[$felder[$i]] = "Name ist auskunftspflichtig";
      } else {
        $probleme[$felder[$i].'2'] = test_input($felder[$i]);
        if (!preg_match("/^[a-zA-Z ]*$/",$probleme[$felder[$i].'2'])) {
          $probleme[$felder[$i]] .= "Nur buchstaben und Leerzeichen sind erlaubt";
        }
     }
    }
  }
return $probleme;
}

【讨论】:

    【解决方案2】:

    不是吗?

    <?php
    
    function check($felder = NULL)
    {
        if ($felder === NULL) {
            $felder = array();
        }
    
        $de = '<h2>Deine Eingaben:</h2>';
        $probleme = array();
    
        // Keys in array:
        $keynames = array('name', 'nachname', 'ort');
    
    
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    
            // For each keys:
            foreach ($keynames as $keyname) {
    
                if (empty($felder[$keyname])) {
    
                    $probleme[$keyname.'2'] = 'n/a';
                    $probleme[$keyname] = ucfirst($keyname).' ist auskunftspflichtig';
    
                } else {
                    $probleme[$keyname.'2'] = test_input($felder[$keyname]);
                    if ( ! preg_match('/^[a-zA-Z ]*$/', $probleme[$keyname.'2'])) {
                        $probleme[$keyname] .= 'Nur buchstaben und Leerzeichen sind erlaubt';
                    }
                }
    
            }
        }
    
        return $probleme;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2014-07-02
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多