PHP에서 Array_Column은 특히 다차원 배열을 처리 할 때 매우 유용한 기능입니다. 2 차원 배열에서 열 값을 추출하고 새 배열을 반환 할 수 있습니다. 그러나 다른 유형의 배열 (예 : 숫자 인덱스 어레이 및 연관 배열)에서 Array_Column을 사용하면 정확히 동일하게 작동하지 않을 수 있습니다. 그렇다면 왜 그런 차이가 있습니까?
숫자 인덱스 어레이는 가장 기본적인 배열 유형 중 하나이며 각 요소에는 증분 색인 (예 : 0, 1, 2 등)이 있습니다. PHP에서 숫자 인덱스 어레이는 일반적으로 순서대로 배열됩니다.
$array = [
['id' => 1, 'name' => 'Tom'],
['id' => 2, 'name' => 'Jerry'],
['id' => 3, 'name' => 'Spike']
];
$names = array_column($array, 'name');
print_r($names);
산출:
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
위의 예에서 Array_Column은 배열에서 각 요소의 이름 키에 해당하는 값을 추출하고 숫자 인덱스의 배열을 반환합니다. 원래 배열은 연관 배열이므로 Array_Column에 의해 처리 될 때 순서대로 값이 추출됩니다.
숫자 인덱스 어레이와 달리, 연관 배열의 각 요소에는 기본 숫자 인덱스 대신 지정된 키가 있습니다. 연관 배열에 Array_Column을 사용하면 성능이 다릅니다.
$array = [
['id' => 1, 'name' => 'Tom'],
['id' => 2, 'name' => 'Jerry'],
['id' => 3, 'name' => 'Spike']
];
$names = array_column($array, 'name', 'id');
print_r($names);
산출:
Array
(
[1] => Tom
[2] => Jerry
[3] => Spike
)
이 예에서는 이름 열의 값을 추출하는 것 외에도 Array_Column은 ID 열의 값을 새 배열의 키로 사용합니다. 따라서 반환되는 것은 원래 배열의 ID 값에서 키가 오는 연관 배열입니다.
숫자 인덱스 어레이 :
array_column이 숫자 인덱스 어레이에서 작동하면 원래 배열의 순서에 따라 새로운 인덱스 배열이 생성됩니다. 각 새 배열의 키는 자동으로 생성되고 0에서 증가합니다.
연관 배열 :
원래 배열이 연관 배열 인 경우 Array_Column은 원래 배열의 키를 유지하거나 다른 키가 지정된 경우 (위의 ID 와 같은)이 지정된 키가 새 배열의 키로 사용됩니다.
인덱스 지정 :
Array_Column을 사용하면 배열 열을 인덱스로 지정할 수 있습니다. 즉, 특정 열의 값을 추출 할뿐만 아니라 배열을 반환하는 키를 제어 할 수 있습니다. 이는 특정 주요 값을 갖춘 배열을 구축하는 데 매우 유용합니다. 특히 특정 필드별로 데이터를 색인해야 할 때.
숫자 인덱스 어레이 및 연관 배열에서 Array_Column 의 동작은 주로 반환 된 배열 키 값에 반영됩니다. 숫자 인덱스 어레이의 경우 기본적으로 숫자 인덱스를 사용합니다. 연관 배열의 경우 원래 인덱스를 유지하거나 지정한 인덱스 열을 사용합니다. 이러한 차이를 이해하면 실제 개발 에서이 기능을 더 잘 사용하고 충족되지 않은 결과를 피할 수 있습니다.