PHP 개발에서 배열 작업은 매우 일반적인 작업 중 하나입니다. 특히 배열에서 지정된 필드에서 데이터를 추출 할 때 여러 가지 구현이 발생할 수 있습니다. 이 기사는 일반적으로 사용되는 몇 가지 일반적으로 사용되는 배열 필드 추출 방법을 소개하고 비교 및 분석을 수행하여 개발자가 특정 시나리오를 기반으로 최상의 솔루션을 선택할 수 있도록 도와줍니다.
Array_Column () 은 다차원 배열에서 지정된 열 (필드)을 추출하기위한 PHP에서 매우 편리한 기능입니다.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_column($array, 'name');
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
적용 가능한 시나리오 : 배열이 연관 배열이고 필드 중 하나만 추출하면 array_column ()은 매우 간결하고 효율적인 방법입니다.
제한 :이 기능은 치수가 높은 2 차원 배열 또는 배열에만 적용됩니다.
Array_Map ()은 배열의 각 요소에 콜백 함수를 적용 할 수 있으므로 배열에서 지정된 필드의 값을 추출하는 데 사용할 수 있습니다.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_map(function ($item) {
return $item['name'];
}, $array);
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
적용 가능한 시나리오 : Array_Map ()은 배열 요소에서 더 복잡한 작업을 수행하거나 추출 필드가 아닌 더 복잡한 작업을 수행 해야하는 경우 더 많은 유연성을 제공합니다.
제한 : 배열이 클 경우 array_map ()을 사용하는 것은 Array_Column () 보다 약간 덜 효율적일 수 있습니다.
배열을 통해 루프 를 직접 사용하고 지정된 필드의 값을 수동으로 추출하십시오. 이 방법은 더 유연하지만 코드 볼륨은 비교적 큽니다.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
foreach ($array as $item) {
$names[] = $item['name'];
}
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
적용 가능한 시나리오 : 더 복잡한 처리를 수행해야 할 때 최대의 유연성을 제공하거나 추출 된 필드에서 추가 작업을 수행하려는 경우 Foreach를 사용하십시오.
제한 사항 :이 방법은 Array_Column () 또는 Array_Map () 에 비해 추가 코드 볼륨을 추가 할 수 있습니다.
Array_Walk ()는 배열을 가로 지르는 데 일반적으로 사용되는 또 다른 기능으로 배열의 각 요소를 처리하고 수정할 수 있습니다. 또한 지정된 필드를 추출하는 데 사용할 수도 있습니다.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
array_walk($array, function ($item) use (&$names) {
$names[] = $item['name'];
});
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
해당 시나리오 : 원래 배열의 내용을 수정하려면 Array_walk ()가 좋은 선택입니다. 그러나 필드를 추출하면 Array_Column () 이 더 간결하고 효율적입니다.
제한 : Array_Column () , 특히 필드 만 추출 해야하는 시나리오에서는 직관적이지 않습니다.
방법 | 간단 | 유연성 | 성능 | 해당 시나리오 |
---|---|---|---|---|
Array_Column () | 높은 | 낮은 | 빠른 | 2 차원 배열 또는 다차원 배열의 열 추출에 적합한 간단한 필드 추출 |
array_map () | 가운데 | 높은 | 중간 | 복잡한 처리 또는 멀티 필드 작업이 필요한 경우 |
foreach | 낮은 | 높은 | 중간 | 복잡한 처리가 완료되면 각 요소를 수동으로 작동해야합니다. |
Array_Walk () | 낮은 | 높은 | 중간 | 배열의 내용을 수정하거나 더 많은 컨트롤이 필요할 때 |
최적의 성능 : 단순히 특정 필드를 추출하는 경우 Array_Column () 이 간단하고 직접적이며 효율적이기 때문에 최선의 선택입니다.
가장 유연한 : 요구 사항이 복잡 해지면 Array_Map () 또는 Foreach는 더 큰 작동 공간을 제공하며 요구 사항에 따라 콜백 함수를 사용자 정의 할 수 있습니다.
원래 배열을 수정할 때 : array_walk ()는 배열 요소를 수정하는 데 적합하지만 필드를 추출하는 경우 최선의 선택은 아닙니다.
PHP에서 배열 필드를 추출하는 방법에는 여러 가지가 있으며 각 방법에는 해당 시나리오가 있습니다. 실제 개발에서 올바른 도구를 선택하면 코드의 가독성과 효율성을 향상시킬 수 있습니다. 이 기사의 비교를 통해 실제 요구에 따라 최상의 추출 방법을 선택할 수 있다고 생각합니다.