모든 배열 항목이 비어 있는지 확인 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의 정의가 잘못되었으며 작은 따옴표가 있습니다. 읽어야합니다.
$array = array( 'RequestID' => $_POST["RequestID"],
'ClientName' => $_POST["ClientName"],
'Username' => $_POST["Username"],
'RequestAssignee' => $_POST["RequestAssignee"],
'Status' => $_POST["Status"],
'Priority' => $_POST["Priority"] );
이 방법으로 사용을 단순화하십시오.
$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
)
수량은 비워 둘 수 없습니다.
테스트되지 않았지만 논리를 얻으십시오. :)
$error = 0;
foreach ($array as $k => $v){
if (empty($v)) {
$error++;
}
}
if ($error == count($array)) {
$error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';
}
이것은 매우 간단합니다.
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' 카테고리의 다른 글
Facebook의 sharer.php를 어떻게 사용자 정의합니까? (0) | 2020.10.26 |
---|---|
IntelliJ Idea Ctrl + Alt + Left 바로 가기가 Ubuntu에서 작동하지 않음 (0) | 2020.10.26 |
중지 옵션이 회색으로 표시 될 때 Windows 서비스 중지 (0) | 2020.10.26 |
PHP 메일러를 통해 Gmail SMTP 서버를 사용하여 이메일 보내기 (0) | 2020.10.26 |
AndroidStudio에서 Java SDK 경로를 설정하는 방법은 무엇입니까? (0) | 2020.10.26 |