[php] 모든 배열 항목이 비어 있는지 확인 PHP

양식에서 항목 배열을 추가하고 모두 비어있는 경우 일부 유효성 검사를 수행하고 오류 문자열에 추가하고 싶습니다. 그래서 나는 가지고있다:

$array = array(
    'RequestID'       => $_POST["RequestID"],
    'ClientName'      => $_POST["ClientName"],
    'Username'        => $_POST["Username"],
    'RequestAssignee' => $_POST["RequestAssignee"],
    'Status'          => $_POST["Status"],
    'Priority'        => $_POST["Priority"]
);

그런 다음 모든 배열 요소가 비어 있으면 다음을 수행하십시오.

$error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';



답변

내장 된 array_filter를 사용할 수 있습니다.

콜백이 제공되지 않으면 FALSE (부울로 변환 참조)와 동일한 입력 항목이 모두 제거됩니다.

그래서 이것을 한 줄로 할 수 있습니다.

if(!array_filter($array)) {
    echo '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';
}


답변

빈 접착제로 배열을 내파하고 결과 문자열의 크기를 확인합니다.

<?php if (strlen(implode($array)) == 0) echo 'all values of $array are empty'; ?>


답변

오래된 질문이지만 위에 나열되지 않았기 때문에 내 솔루션에 팝업 될 것이라고 생각했습니다.

function isArrayEmpty($array) {
    foreach($array as $key => $val) {
        if ($val !== '')
            return false;
    }
    return true;
}


답변

정말 필요하지 않습니다.
이 필드를 개별적으로 검증하고이 프로세스를 완료하면 배열이 비어 있는지 (또는 동일한 값이 잘못된 값을 포함하는지) 알 수 있습니다.


답변

이 방법으로 사용을 단순화하십시오.

$array = []; //target array
$is_empty = true; //flag

foreach ($array as $key => $value) {
    if ($value != '')
        $is_empty = false;
}
if ($is_empty)
    echo 'array is empty!';
else
    echo 'array is not empty!';


답변

$ array의 정의가 잘못되었으며 작은 따옴표가 있습니다. 읽어야합니다.

$array = array( 'RequestID' =>  $_POST["RequestID"],
                'ClientName' => $_POST["ClientName"],
                'Username' => $_POST["Username"],
                'RequestAssignee' => $_POST["RequestAssignee"],
                'Status' => $_POST["Status"],
                'Priority' => $_POST["Priority"] );


답변

나는 같은 질문이 있었지만 배열의 각 요소를 개별적으로 확인하여 어느 것이 비어 있는지 확인하고 싶었습니다. 빈 배열 요소를 확인하고 응답하기 위해 별도의 배열에 키 값과 실제 값을 만들어야하므로 예상보다 어려웠습니다.

print_r($requestDecoded);
$arrayValues = array_values($requestDecoded);  //Create array of values
$arrayKeys = array_keys($requestDecoded);      //Create array of keys to count
$count = count($arrayKeys);
for($i = 0; $i < $count; $i++){
    if ( empty ($arrayValues[$i] ) ) {         //Check which value is empty
        echo $arrayKeys[$i]. " can't be empty.\r\n";
    }
}

결과:

Array
(
    [PONumber] => F12345
    [CompanyName] => Test
    [CompanyNum] => 222222
    [ProductName] => Test
    [Quantity] =>
    [Manufacturer] => Test
)

수량은 비워 둘 수 없습니다.