매일 PHP 개발, 특히 양식 또는 배치 데이터 제출을 처리 할 때 많은 입력 값을 초기화하고 필터링 해야하는 경우가 종종 있습니다. 이 기사에서는 배치 입력 값의 초기화 및 유효성 필터링을 구현하기 위해 array_fill () 및 array_filter () 의 두 기능을 사용하는 방법을 소개합니다.
array_fill (int $ start_index, int $ count, Mixed $ value) : 배열
고정 구조 데이터 수집을 초기화하는 데 적합한 배열을 생성하고 지정된 값으로 채우는 데 사용됩니다.
Array_Filter (Array $ array,? callable $ callback = null, int $ mode = 0) : 배열
배열에서 값을 필터링하는 데 사용됩니다. 기본적으로 배열의 False (예 : 0 , false , null , '' 등)에 해당하는 모든 요소는 제거되며 사용자 정의 콜백 함수를 통해보다 복잡한 필터링 로직을 구현할 수 있습니다.
10 개의 항목으로 배치 양식 제출 작업을하고 있다고 가정 해 봅시다. 각 항목은 사용자가 입력 한 이름 필드입니다. 우리는 희망 :
이 항목을 기본 빈 문자로 초기화합니다.
필터링되지 않은 항목을 필터링하면 이름이 채워진 항목 만 다음 처리 또는 스토리지를 위해 유지됩니다.
<?php
// 제출 된 데이터가 다음과 같다고 가정하십시오(부분적으로 비어 있습니다)
$submittedData = [
'Alice',
'',
'Bob',
null,
'Charlie',
'',
' ',
'David',
false,
'Eve'
];
// 첫 번째 단계:초기화 10 항목,기본값은 빈 문자열입니다(제출되지 않은 경우 데이터가 불완전하지 않도록합니다)
$inputCount = 10;
$defaultData = array_fill(0, $inputCount, '');
// 2 단계:将用户提交的数据合并到초기화数组中,인덱스 누락을 피하십시오
$mergedData = array_replace($defaultData, $submittedData);
// 3 단계:사용 array_filter 유효하지 않은 데이터를 필터합니다(빈 줄처럼、null、false、공간 등)
$validData = array_filter($mergedData, function ($value) {
// 사용 trim 공간을 제거하십시오,그런 다음 비어 있는지 확인하십시오
return trim($value) !== '';
});
// 4 단계:유효한 데이터를 처리합니다(저장된 경우、확인하다、산출)
foreach ($validData as $index => $name) {
echo "1. " . ($index + 1) . " 항목 유효한 입력:{$name}\n";
}
1. 1 항목 유효한 입력:Alice
1. 3 항목 유효한 입력:Bob
1. 5 항목 유효한 입력:Charlie
1. 8 항목 유효한 입력:David
1. 10 항목 유효한 입력:Eve
이 조합은 다음과 같은 실제 응용 분야에서 매우 유용합니다.
멀티 라인 게시판;
대량 사용자 가져 오기;
배치에서 매개 변수를 설정합니다 (예 : URL 어레이, API 요청 데이터 등).
배치 필드는 사용자가 업로드 한 배치 필드 (예 : 배치를 업로드 할 때).
예를 들어 양식에서 URL 주소 세트를 가져 와서 비어 있고 유효하지 않은지 확인해야 할 수도 있습니다.
$urls = [
'https://m66.net/api/user',
'',
'https://m66.net/docs',
null,
' '
];
$urls = array_filter($urls, function ($url) {
return trim($url) !== '';
});
// 산출有效链接
print_r($urls);
Array_Fill ()을 사용하여 데이터 구조를 초기화하고 Array_Filter () 로 사용자 제출 데이터를 청소하면 PHP에서 배치 데이터의 처리 흐름을 크게 단순화 할 수 있습니다. 이 방법은 효율적이고 간결 할뿐만 아니라 코드의 견고성과 유지 가능성을 향상시킵니다. 모든 PHP 개발자가 마스터 해야하는 기술입니다.
양식, API 또는 데이터베이스에서 배치 데이터 입력을 종종 처리하는 경우이 두 기능을 사용하여 처리 로직을 최적화하십시오.