php - call_user_func() 来验证数组值

标签 php arrays csv

我想通过数组预设字段的验证规则,例如:

$vals = array(
   'val1' => array(
       'rule' => 'ctype_alnum',
   ),
   'val2' => array(
       'rule' => 'ctype_digit',
   ),
);

如果这些字段满足基本验证,将从 CSV 导入并插入到数据库中。

例如

$while ($data = fgetcsv....)

$array['val1'] = $data[2];
$array['val2'] = $data[9];
$array['val3'] = $data[11];

我想要做的,但我不知道如何准确地做到这一点,现在是交叉引用 $array 数组与 $fields 中的预设规则> 数组。如果任何字段未验证,则该行的导入将中止。

有什么想法可以做到这一点吗?

最佳答案

这应该是您所需要的:

foreach ($vals as $key => $rule)
{

  if (function_exists($rule['rule']) && !call_user_func($rule['rule'], $array[$key]))
  {
    continue 2;
  }

}

关于php - call_user_func() 来验证数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15421726/

相关文章:

php - 使用 PHP SDK 的 Amazon Polly 实现

c - 双重释放错误释放二维数组

php - Facebook,我应该在 SQL 中使用 Array 还是不同的行来表示喜欢的帖子

php - CURLOPT_FILE、curl_multi_exec 和 fclose

python - numpy 数组大小的困惑

javascript - 获取两个数组中具有匹配值的对象

python - 如何使用Python打开大文件(9GB)?

python - 有没有更快的方法使用 python 从 CSV 中分离重复和不同的数据?

node.js - 使用不带循环的 csv-parse

php - 检查链接时会添加下划线