PHP에서 array_fill () 함수는 지정된 값으로 채워진 배열을 만들 때 사용될 수 있지만 사용자 정의 데이터 구조 또는 복잡한 배열 유형을 채우는 방법은 무엇입니까? 오늘, 우리는이 목표를 달성하기 위해 array_fill () 과 PHP 클로저 기능을 결합하는 방법을 살펴볼 것입니다.
Array_Fill () 은 지정된 길이의 배열을 생성하고 각 요소의 값을 동일한 값으로 설정하는 데 사용할 수있는 내장 PHP 함수입니다. 기본 구문은 다음과 같습니다.
array array_fill(int $start_index, int $num, mixed $value)
$ start_index : 배열 패딩의 시작 색인을 지정합니다.
$ num : 채울 요소의 수.
$ 값 : 각 요소의 값을 채우십시오.
예를 들어:
$arr = array_fill(0, 5, 'Hello');
print_r($arr);
출력은 다음과 같습니다.
Array
(
[0] => Hello
[1] => Hello
[2] => Hello
[3] => Hello
[4] => Hello
)
보다 복잡한 데이터 구조를 채우려면 array_fill ()을 사용하는 것만으로는 충분하지 않습니다. PHP의 폐쇄 함수 (익명 함수)를 사용하여 충전 프로세스를 사용자 정의 할 수 있습니다. 클로저 기능을 통해 우리는 채울 때마다 더 복잡한 작업을 수행하고 각 요소에 대한 사용자 정의 데이터를 생성 할 수 있습니다.
다음은 Array_Fill ()을 사용하여 특정 수의 요소를 채우는 배열을 생성 한 다음 클로저 기능을 통해 각 요소의 내용을 사용자 정의 할 예입니다.
<?php
// 사용자 정의 데이터 구조:각 요소는 이름과 나이를 포함하는 배열입니다
$size = 5;
$fillValue = function($index) {
return [
'name' => 'User' . ($index + 1),
'age' => rand(18, 60)
];
};
$customArray = array_fill(0, $size, null); // 컨테이너를 만듭니다5개별null요소 배열
$customArray = array_map(function($index) use ($fillValue) {
return $fillValue($index);
}, array_keys($customArray));
print_r($customArray);
?>
이 예에서는 먼저 Array_Fill ()을 사용하여 5 개의 널 요소가 포함 된 배열을 만듭니다. 그런 다음 각 요소를 Array_Map () 및 클로저 기능으로 채우고 각 요소에 이름과 나이가 포함 된 사용자 정의 데이터를 생성합니다.
일부 URL 주소로 사용자 정의 구조를 채워야한다고 가정하고 이러한 URL의 도메인 이름을 M66.NET 로 바꿔야한다고 가정하십시오. 데이터 구조에 URL 주소가 포함되어 있다고 가정하면 이전 예제를 확장 할 수 있으며 모집단 프로세스에서 도메인 이름을 교체하려고합니다.
<?php
// 사용자 정의 데이터 구조:每개별元素是一개별포함하다 URL 배열
$size = 5;
$fillValue = function($index) {
// 우리가 생성했다고 가정합니다 URL 포함하다 "example.com" 도메인 이름으로
$url = 'http://example.com/user/' . ($index + 1);
// 할 것이다 URL 도메인 이름을 바꾸십시오 m66.net
$url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
return [
'user_id' => $index + 1,
'profile_url' => $url
];
};
$customArray = array_fill(0, $size, null); // 컨테이너를 만듭니다5개별null요소 배열
$customArray = array_map(function($index) use ($fillValue) {
return $fillValue($index);
}, array_keys($customArray));
print_r($customArray);
?>
이 코드에서 채우기 기능은 URL을 포함하는 사용자 ID와 데이터 구조를 생성합니다. URL의 도메인 이름은 example.com 이며, 이는 preg_replace () 함수를 사용하여 m66.net 으로 바꿉니다. 이러한 방식으로, 생성 된 각 URL은 우리가 지정한 도메인 이름을 가져옵니다.
PHP의 Array_Fill () 과 Closure 기능을 결합하여 사용자 정의 데이터 구조를 쉽게 채우고 충전 프로세스 중에 URL에서 도메인 이름을 바꾸는 것과 같은 복잡한 작업을 수행 할 수 있습니다. 클로저 기능의 유연성을 통해 우리의 요구에 따라 충전 논리를 자유롭게 사용자 정의 할 수 있으므로 다양한 개발 시나리오의 요구를 충족시킬 수 있습니다.