PHP에서 Array_Column 및 Array_Filter 기능은 배열 데이터를 처리 할 때 특히 특정 기준을 충족하는 2 차원 배열에서 지정된 열 데이터를 추출해야 할 때 매우 유용한 도구입니다. 이 기사는이 두 기능을 사용하여이를 달성하는 방법을 설명합니다.
Array_Column 함수는 다차원 배열에서 열 값을 추출하고 새 배열을 반환하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
array_column(array $array, $column_key, $index_key = null): array
$ 배열 : 입력 다차원 배열.
$ column_key : 추출하려는 열의 키 이름입니다.
$ index_key (선택 사항) :이 매개 변수가 제공되면 반환 된 배열은이 키를 새 배열의 키로 사용합니다.
예를 들어, 다음과 같은 2 차원 배열이 있다고 가정합니다.
$data = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Joe', 'age' => 22],
];
Array_Column 함수를 통해 모든 사용자의 이름 열을 추출 할 수 있습니다.
$names = array_column($data, 'name');
print_r($names);
출력은 다음과 같습니다.
Array
(
[0] => John
[1] => Jane
[2] => Joe
)
Array_Filter 함수는 기준을 충족하는 배열 및 반환 요소의 요소를 필터링하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ 배열 : 입력 배열.
$ 콜백 : 콜백 함수, 배열 조건을 필터링하는 데 사용됩니다.
$ mode (선택 사항) : 필터링 모드, array_filter_use_key는 키 필터링, Array_filter_use_both 키 및 값 필터링, 기본 필터링에 사용됩니다.
이전 배열에서 24 세 이상의 사용자를 필터링하고 싶다고 가정하고 콜백 함수와 함께 Array_Filter를 사용할 수 있다고 가정 해 봅시다.
$filteredData = array_filter($data, function($person) {
return $person['age'] > 24;
});
print_r($filteredData);
출력은 다음과 같습니다.
Array
(
[1] => Array
(
[id] => 2
[name] => Jane
[age] => 30
)
[0] => Array
(
[id] => 1
[name] => John
[age] => 25
)
)
Array_Column 및 Array_Filter를 결합하여 특정 조건을 충족하는 지정된 열 데이터를 추출하려면 먼저 Array_Filter 기능을 사용하여 배열을 필터링 한 다음 Array_Column 함수를 사용하여 해당 열을 추출 할 수 있습니다.
예를 들어, 24 세 이상의 모든 사용자의 이름 열을 찾아야한다고 가정 해 봅시다.
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
출력은 다음과 같습니다.
Array
(
[0] => John
[1] => Jane
)
이 예제는 먼저 데이터 ( Array_Filter )를 필터링 한 다음 필요한 열 ( Array_Column )을 추출하여 기준을 충족하는 데이터를 얻는 방법을 보여줍니다.
데이터 소스가 API 또는 웹 사이트에서 반환 된 결과 인 경우 반환 된 데이터는 일반적으로 여러 요소를 포함하는 JSON 객체입니다. 예를 들어, https://api.m66.net/users 에서 사용자 데이터를 받고 특정 기준 (예 : 24 세 이상)을 충족하는 사용자 이름에만 관심이 있다고 가정합니다. 당신은 다음과 같이 할 수 있습니다 :
$url = "https://api.m66.net/users";
$response = file_get_contents($url);
$data = json_decode($response, true);
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
이 예에서 먼저, 사용자 데이터는 m66.net 에서 file_get_contents 에서 얻어지면 array_filter는 24 세 이상의 사용자를 필터링하는 데 사용되며 마지막으로 이름 열은 Array_Column을 통해 추출됩니다.
Array_Column 과 Array_Filter 함수의 조합으로 복잡한 2 차원 배열에서 기준을 충족하는 특정 열 데이터를 쉽게 추출 할 수 있습니다. 이 방법은 API, 데이터베이스 쿼리 결과 등에 의해 반환 된 데이터를 처리하는 데 매우 유용하며 데이터 처리의 복잡성을 크게 단순화 할 수 있습니다.