在foreach循环中允许数组的空索引

时间:2018-09-19 06:11:26

标签: php arrays foreach

即使在foreach循环中数组的任何索引为空,也要尝试插入数据。如果索引为空,请尝试以下脚本给与Undefined index:错误。

$data = array();
if(count($_POST['data']) > 0 && !empty ($_POST['data'])){  
    foreach($_POST['data'] as $key => $array){
        $row = array();
        $row['team_id'] = intval($array['team_id']);
        $row['Note'] = strip_tags(trim(strval($array['Note'])));
        $row['result'] = strip_tags(trim(strval($array['result'])));
        $data[$key] = $row;
    }
        $sql = $db->prepare("INSERT INTO teams ('team_id','note','result') values (:team_id, :note, :result) ");

        foreach($data as $key => $array){
           $sql->execute(array(':team_id' => $array['team_id'], ':note' =>$array['Note'], ':result' => $array['result'], ));
    }
}

2 个答案:

答案 0 :(得分:1)

设置变量时可以防止isset

$row['team_id'] = isset($array['team_id']) ? intval($array['team_id']) : null;
$row['Note'] = isset($array['Note']) ? strip_tags(trim(strval($array['Note']))) : null;
$row['result'] = isset($array['result']) ? strip_tags(trim(strval($array['result']))) : null;

答案 1 :(得分:1)

<?php

$data = array();
foreach ($_POST['data'] as $key => $array) {
    $data[$key]['team_id'] = isset($array['team_id']) ? intval($array['team_id']) : null;
    $data[$key]['Note'] = isset($array['Note']) ? strip_tags(trim(strval($array['Note']))) : null;
    $data[$key]['result'] = isset($array['result']) ? strip_tags(trim(strval($array['result']))) : null;

}

?>