用于检查POST多维数组的函数

时间:2015-08-12 09:54:56

标签: php arrays multidimensional-array

我有以下功能来检查数组的键

public function check($arr, $key, $default = NULL) {
    return isset($arr[$key]) && !empty($arr[$key]) ? $arr[$key] : $default;
}


$this->check($info, 'location'); //it's working
$this->check($info['birthday'], 'year'); //it's working
$this->check($_POST, 'email'); //it's working
$this->check($_POST, 'password'); //it's working

在出现多维数组之前一切正常

enter image description here

Notice: Array to string conversion in

3 个答案:

答案 0 :(得分:0)

不是100%确定你在寻找什么,但请注意,如果你有电子邮件[] []字段,当你返回$ arr [$ key]时,你将返回一个数组。因此,在返回其值之前,您必须检查$ arr [$ key]是否为数组。

public function check($arr, $key, $default = NULL) {
    if( isset($arr[$key]) && !empty($arr[$key]) || is_array($arr[$key])) { 

       if(is_array($arr[$key])) { 
         //apply here your second level check condition

       } else return $arr[$key]; // returns its value (if it's not an array)


    } else return $default;
}

希望有所帮助

相反,如果你试图建立一个函数检查,如果$ key包含在多维数组的某个地方,那么你必须这样做(这就是为什么我写的我不是100确定你正在寻找的东西

答案 1 :(得分:0)

将您的功能代码更改为:

public function check($arr, $key, $default = NULL) {
    return isset($arr[$key]) ? $arr[$key] : $default;
}

如果您仍想检查空值(虽然isset足够):

public function check($arr, $key, $default = NULL) {
    return isset($arr[$key]) && (!empty($arr[$key]) || is_array($arr[$key])) ? $arr[$key] : $default;
}

答案 2 :(得分:-2)

[2268:0812/115601:INFO:CONSOLE(18)] "Uncaught TypeError: Cannot read property 'on' of undefined", source: https://twist.moe/public/lib/snap.svg-min.js (18)

在上面的代码中,您使用BrowserWindow(这是一个数组)作为字符串。