programing

모든 어레이 항목이 빈 PHP인지 확인하는 중

copysource 2022. 9. 22. 22:56
반응형

모든 어레이 항목이 빈 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>';

built-in 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'; ?>

이것은 다음과 같은 가치를 고려하는 안전한 방법입니다.0또는"0"비어있지 않습니다.빈칸을 사용하여 승인된 답변array_filtercallback은 empty() 함수를 사용하기 때문에 이러한 값은 비어 있는 것으로 간주합니다.많은 형태 사용법이 고려되어야 할 것이다.0올바른 답변이므로 자신에게 가장 적합한 방법을 선택할 때 주의해야 합니다.

오래된 질문입니다만, 위에 기재되어 있지 않기 때문에, 제 솔루션을 제안하고 싶다고 생각하고 있습니다.

function isArrayEmpty(array $array): bool {
    foreach($array as $key => $val) {
        if ($val !== '' || $val !== null) // remove null check if you only want to check for empty strings
            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!';

같은 질문이 있습니다만, 어레이내의 각 요소를 개별적으로 체크하고, 어느 것이 비어 있는지를 확인하려고 했습니다.빈 어레이 요소를 확인하고 응답하려면 키 값과 실제 값을 별도의 어레이에 생성해야 하기 때문에 이 작업은 예상보다 어려웠습니다.

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
)

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

이것은 매우 간단합니다.

foreach($array as $k => $v)
{
    if(empty($v))
    {
        unset($array[$k]);
    }
}
$show_error = count($array) == 0;

어레이 값의 캡슐화를 큰따옴표로 변경해야 합니다.

언급URL : https://stackoverflow.com/questions/5040811/checking-if-all-the-array-items-are-empty-php

반응형