PHP에서 다차원 배열을 처리 할 때 다른 키에 따라 특정 요소를 필터링해야합니다. 각각 특정 해당 시나리오가있는 많은 일반적인 운영 방법이 있습니다. 이 기사에서는 다차원 배열에서 다른 주요 요소를 필터링하고 특정 코드 예제를 결합하는 몇 가지 일반적인 PHP 방법을 살펴 봅니다.
Array_Map () 함수는 배열의 각 요소에 콜백 함수를 적용 할 수 있으며, 이는 다차원 배열에서 특정 필드 또는 값을 추출하는 데 적합합니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 array_map 필터링 'name' 키의 모든 값
$names = array_map(function ($item) {
return $item['name'];
}, $array);
print_r($names); // 산출: Array ( [0] => Alice [1] => Bob [2] => Charlie )
?>
설명하다:
Array_Map () 함수는 배열을 가로 지르고 각 서브 어레이에서 콜백 함수를 실행합니다. 콜백 함수에서 필수 키 (이 예에서는 이름 키) 만 리턴하여 해당 값을 모두 필터링합니다.
Array_Filter () 함수는 배열에서 요소를 필터링하는 데 사용됩니다. Array_Filter () 와 조건부 판단을 결합하여 특정 조건을 충족하는 요소를 필터링 할 수 있으며, 이는 다차원 배열에서 원치 않는 요소를 필터링하는 데 적합합니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 array_filter 필터링年龄더 큽니다 30 강요
$filtered = array_filter($array, function ($item) {
return $item['age'] > 30;
});
print_r($filtered);
?>
설명하다:
Array_Filter () 함수는 배열의 각 요소가 콜백 함수를 통해 주어진 조건을 충족하는지 여부를 결정하고 조건을 충족하는 요소가 유지됩니다. 이 예에서는 30 세 이상의 요소를 선별했습니다.
Array_Column () 함수는 2 차원 배열에서 특정 열의 값을 직접 추출 할 수 있습니다. 다차원 배열에서 키에 해당하는 값을 추출하는 데 특히 적합합니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 array_column 발췌 'name' 키의 모든 값
$names = array_column($array, 'name');
print_r($names); // 산출: Array ( [0] => Alice [1] => Bob [2] => Charlie )
?>
설명하다:
Array_Column () 은 2 차원 배열에서 직접 지정된 키의 값을 추출하여 어레이를 수동으로 통과하는 복잡성을 피하는 매우 간결한 방법입니다.
다차원 배열에서보다 복잡한 필터링 기준을 만들려면 배열을 수정하려면 Foreach Loops를 사용하는 것이 매우 직접적이고 유연한 접근 방식입니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 foreach 循环필터링 'age' 더 큽니다 30 강요
$filtered = [];
foreach ($array as $item) {
if ($item['age'] > 30) {
$filtered[] = $item;
}
}
print_r($filtered);
?>
설명하다:
Foreach 루프를 통해 필터링 조건을 사용자 정의하고 요소 별 배열 요소를 확인할 수 있습니다. 복잡한 조건을 필터링하는 데 매우 유연하고 적합합니다.
Array_Walk () 함수는 배열의 각 요소에서 작동하는 데 사용되며 종종 배열 요소를 수정하거나 필터링하는 데 사용됩니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 array_walk 修改数组中강요
array_walk($array, function (&$item) {
if ($item['age'] > 30) {
$item['status'] = 'Senior';
} else {
$item['status'] = 'Junior';
}
});
print_r($array);
?>
설명하다:
Array_Walk () 함수는 배열을 가로 지르고 각 요소에서 작동합니다. 여기서 우리는 연령 조건에 따라 각 요소에 상태 키를 동적으로 추가합니다.
array_reduce () 함수는 배열에서 붕괴 된 요소에 의해 최종 값을 생성 할 수 있습니다. 사용자 정의 조건과 함께 요구 사항을 충족하는 요소를 걸러 낼 수 있습니다.
샘플 코드 :
<?php
// 이것이 다차원 배열이라고 가정하십시오
$array = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
// 사용 array_reduce 배열을 필터링하십시오
$filtered = array_reduce($array, function ($carry, $item) {
if ($item['age'] > 30) {
$carry[] = $item;
}
return $carry;
}, []);
print_r($filtered);
?>
설명하다:
array_reduce () 함수는 어큐뮬레이터를 통해 배열을 가로 지르고 조건에 따라 요구 사항을 충족하는 요소를 필터링합니다.
PHP는 다차원 배열에서 다른 주요 요소를 필터링하는 다양한 방법을 제공합니다. 실제 요구에 따라 적절한 기능을 선택할 수 있습니다. 간단한 필터링 작업의 경우 array_map () 및 array_column ()은 매우 효율적인 솔루션을 제공합니다. 더 복잡한 논리가 필요한 경우 foreach 및 array_filter () 는 더 유연한 옵션입니다.
이러한 방법은 코드의 가독성을 향상시킬뿐만 아니라 큰 데이터를 처리 할 때 개발 효율성을 향상시키는 데 도움이됩니다.
PHP 배열 작업에 대한 자세한 내용은 다음 링크를 참조하십시오.