개발에서 우리는 종종 양식 데이터를 처리하거나 필드를 내보내거나 컨텐츠를 반환하기 위해 인터페이스를 동적으로 구성하는 등 프론트 엔드에 의해 전달 된 필드를 기반으로 데이터 구조를 동적으로 구축해야합니다. PHP의 array_fill_keys 함수는 특정 필드를 포함하는 배열 구조를 효율적으로 초기화하는 데 사용될 수 있습니다.
이 기사는 실용적인 예를 사용하여 Front-End가 전달한 필드 목록과 함께 Array_Fill_Keys를 사용하여 재사용 가능한 데이터 템플릿을 신속하게 구축하는 방법을 설명합니다.
Array_fill_Keys는 PHP에서 사용되는 기능으로 배열을 생성하는 기능입니다. 두 매개 변수를 수용합니다.
array_fill_keys(array $keys, mixed $value): array
$ 키 : 키로 사용할 배열.
$ 값 : 모든 키에 해당하는 기본값.
이 기능의 아름다움은 수동 루핑없이 통합 구조를 가진 배열을 빠르게 생성 할 수 있다는 것입니다.
프론트 엔드가 필드 배열을 통과한다고 가정하면, 우리의 작업은 이러한 필드를 기반으로 기본값 (예 : NULL )을 포함하는 배열 템플릿을 생성하는 것입니다. 이 템플릿은 데이터를 채우고 필드를 확인하고 응답 구조를 작성하는 데 사용될 수 있습니다.
<?php
// 이것이 프론트 엔드 패스라고 가정하십시오POST오는 필드 목록
$inputFields = $_POST['fields'] ?? ['id', 'name', 'email'];
// 사용 array_fill_keys 기본값을 만듭니다 null 의 구조
$dataTemplate = array_fill_keys($inputFields, null);
// 이제이 구조에 따라 데이터를 구성 할 수 있습니다,예를 들어 데이터베이스에서 쿼리 된 사용자 데이터를 작성하십시오.:
$userFromDb = [
'id' => 101,
'name' => 'Alice',
'email' => 'alice@example.com',
'created_at' => '2024-04-01'
];
// 템플릿을 사용하여 필터 필드 만 필터링하십시오
$filteredUser = array_intersect_key($userFromDb, $dataTemplate);
// 누락 된 필드를 작성하십시오(데이터베이스에서 필드가 전송되지 않은 경우)
$finalUserData = array_merge($dataTemplate, $filteredUser);
print_r($finalUserData);
?>
Array
(
[id] => 101
[name] => Alice
[email] => alice@example.com
)
때때로 프론트 엔드는 또한 점프 주소를 구성하려는 경우와 같이 링크 매개 변수를 생성하기 위해 필드 세트를 보낼 수도 있습니다.
$fields = $_GET['fields'] ?? ['uid', 'token'];
$params = array_fill_keys($fields, '');
// 실제 매개 변수를 작성하십시오(예를 들어session비즈니스 논리에 들어가십시오)
$params['uid'] = 888;
$params['token'] = 'abc123';
// 구조URL
$queryString = http_build_query($params);
$url = "https://m66.net/api/user_info?" . $queryString;
echo $url;
// 산출:https://m66.net/api/user_info?uid=888&token=abc123
Array_Fill_Keys를 사용하면 프론트 엔드 들어오는 필드를 기반으로 통합 데이터 구조를 우아하고 효율적으로 구축 할 수 있습니다. 코드 로직을 단순화 할뿐만 아니라 코드의 유연성과 유지 관리도 향상시킵니다. array_merge 및 array_intersect_key 와 같은 배열 함수와 쌍을 이룰 때 그 역할은 더욱 필수 불가능합니다.
적용 가능 :
데이터 템플릿을 작성하십시오
동적 필드 필터링
매개 변수 초기화
배치 할당 작업 등
이 기능을 잘 활용하여 PHP 코드를보다 간결하고 강력하게 만듭니다.