2014-10-15 3 views
0

PHP를 처음 사용했습니다. 이것은 mailing.php의 코드입니다. 사용자가 요청을 제출하면 5-7 개의 선택 가능 필드와 20-25 개의 필드가 선택되지 않습니다. 출력은 비 었는지 또는 선택되어 있는지에 관계없이 모든 필드와 값을 나열합니다. unset 또는 array_filter을 사용해야하지만 코드에 삽입해야하는 방법과 위치를 파악할 수 없다는 것을 알고 있습니다.PHP에서 foreach 후 배열의 빈 필드를 제거하십시오.

if($_POST && count($_POST)) { 

    $body = ''; 

    foreach($_POST as $key=>$value) 
     $body .= $key . ": " . $value . "\r\n"; 

    mail("[email protected]", "Email Received at [email protected]", $body); 

답변

1

을 사용하려면이

$_POST = array_filter($_POST); 

또 다른 옵션입니다 사용해야합니다 또는

if($_POST && count($_POST)) { 
    $body = ''; 
    foreach($_POST as $key=>$value){ 
     $trim_value = trim($value); 
     if (!empty($trim_value)){ 
      $body .= $key . ": " . $value . "\r\n"; 
     } 

    } 
mail("[email protected]", "Email Received at [email protected]", $body); 
+0

정말 고마워요. 당신의 생명의 은인. 나는 $ _POST = array_filter ($ _ POST)를 넣었습니다; 전에 대신 foreach 루프 후. –

0

그냥 foreach 루프 전에 당신이

if($_POST && count($_POST)) { 
    $_POST = array_filter($_POST); 
    $body = ''; 

    foreach($_POST as $key=>$value) 
     $body .= $key . ": " . $value . "\r\n"; 

    mail("[email protected]", "Email Received at [email protected]", $body); 

을 시도 할 수 있습니다 조건부 내부 foreach 루프를

foreach($_POST as $key=>$value) 
    if ($value != '' && $value != null) 
     $body .= $key . ": " . $value . "\r\n"; 
관련 문제