모든 어레이 항목이 빈 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_filter
callback은 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
'programing' 카테고리의 다른 글
스크립트 시간 초과가 지났습니다. 가져오기를 완료하려면 동일한 파일을 다시 제출하십시오. 가져오기가 재개됩니다. (0) | 2022.09.22 |
---|---|
MariaDB에서 선택한 행의 도움을 받아 열 값을 업데이트하려면 어떻게 해야 합니까? (0) | 2022.09.22 |
HTML 엔티티 디코드 (0) | 2022.09.22 |
"날짜():시스템의 타임존 설정에 의존하는 것은 안전하지 않습니다.." (0) | 2022.09.22 |
MariaDB 서버에 대한 Python Connection은 약 24시간마다 닫힙니다. (0) | 2022.09.22 |