检查PHP函数中是否存在字段

检查PHP函数中是否存在字段,php,Php,我有一个PHP脚本: for ($desc=1; $_POST['ddata'.$desc]; $desc++) { if($_POST['ddata'.$desc]){ if ($desc == 1){ $ddata = $_POST['ddata'.$desc]; $dlocatie = $_POST['dlocatie'.$desc]; } else { $ddata = $d

我有一个PHP脚本:

for ($desc=1; $_POST['ddata'.$desc]; $desc++) { 
    if($_POST['ddata'.$desc]){
        if ($desc == 1){
            $ddata = $_POST['ddata'.$desc];
            $dlocatie = $_POST['dlocatie'.$desc];
        } else {
            $ddata = $ddata.' / '.$_POST['ddata'.$desc];
            $dlocatie = $dlocatie.' / '.$_POST['dlocatie'.$desc];
        }
    }
}
如果我有5个
ddata
字段,则会出现以下错误:
未定义索引:ddata6

如何检查该字段是否存在,以防止出现此错误

如何检查该字段是否存在,以防止出现此错误

在访问项目之前,使用
isset()
检查项目是否存在

如何检查该字段是否存在,以防止出现此错误

使用
isset()
在访问项目之前检查项目是否存在。

您可以选择

if(isset($_POST['thekey']))
或者更传统地说:

if(array_key_exists('thekey', $_POST))
你可以去

if(isset($_POST['thekey']))
或者更传统地说:

if(array_key_exists('thekey', $_POST))
如果($\u POST['ddata.$desc]),您可以执行以下操作:

if(isset($_POST['ddata'.$desc]))
或:

如果($\u POST['ddata.$desc]),您可以执行以下操作:

if(isset($_POST['ddata'.$desc]))
或:

试一试

谢谢

试试看


谢谢

在执行循环之前,通过使用preg\u grep扫描数组中的
ddata…
字段,检查存在哪些字段

$ddata_fields = preg_grep('/^ddata\d+$/', array_keys($_POST));
foreach($ddata_fields as $field) {
    $ddata = $_POST[$field];
    etc...
}

在执行循环之前,通过使用preg\u grep扫描数组中的
ddata…
字段,检查存在哪些字段

$ddata_fields = preg_grep('/^ddata\d+$/', array_keys($_POST));
foreach($ddata_fields as $field) {
    $ddata = $_POST[$field];
    etc...
}

只需添加一个
if(isset($\u POST['ddata'.$desc]){}
而不是
if($\u POST['ddata'.$desc]){}

只需添加一个
if(isset($\u POST['ddata'.$desc]){}
而不是
if($\u POST['ddata$desc}

更改以…开头的部分

if($_POST['ddata'.$desc]){

for ($desc=1; $_POST['ddata'.$desc]; $desc++) { 
    if (isset($_POST['ddata'.$desc])) {
        $ddata = $_POST['ddata'.$desc'];
    } else {
        continue;
    }
    switch($desc) {
    case "1" :
        $ddata = $_POST['ddata'.$desc];
        $dlocatie = $_POST['dlocatie'.$desc];
    break;
    case "2" :
    case "3" :
    case "4" :
    case "5" :
        $ddata = $ddata.' / '.$_POST['ddata'.$desc];
        $dlocatie = $dlocatie.' / '.$_POST['dlocatie'.$desc];
    break;
    }
}

更改以…开头的部分

if($_POST['ddata'.$desc]){

for ($desc=1; $_POST['ddata'.$desc]; $desc++) { 
    if (isset($_POST['ddata'.$desc])) {
        $ddata = $_POST['ddata'.$desc'];
    } else {
        continue;
    }
    switch($desc) {
    case "1" :
        $ddata = $_POST['ddata'.$desc];
        $dlocatie = $_POST['dlocatie'.$desc];
    break;
    case "2" :
    case "3" :
    case "4" :
    case "5" :
        $ddata = $ddata.' / '.$_POST['ddata'.$desc];
        $dlocatie = $dlocatie.' / '.$_POST['dlocatie'.$desc];
    break;
    }
}

$desc
0-4还是1-5?是
$desc
0-4还是1-5?