현재 위치: > 최신 기사 목록> Array_Column 빈 배열을 반환하는 몇 가지 가능한 이유

Array_Column 빈 배열을 반환하는 몇 가지 가능한 이유

M66 2025-04-28

PHP에서 array_column 함수는 일반적으로 사용되는 도구로서 2 차원 배열에서 지정된 열에서 데이터를 추출하는 데 사용됩니다. 이 기능은 데이터 테이블에서 특정 필드를 추출하는 것과 같은 연관 배열을 처리 할 때 특히 일반적인 요구에 특히 적합합니다. 그러나 때로는 Array_Column 함수를 사용할 때 빈 배열을 반환하는 것으로 나타납니다. 그렇다면 왜 이런 일이 발생합니까? 이 기사는 Array_Column이 빈 배열을 반환하게 할 수있는 몇 가지 이유를 탐색합니다.

1. 배열 구조는 요구 사항을 충족하지 않습니다

Array_Column은 2 차원 배열로 전달해야하며 내부의 각 요소는 배열 또는 객체 여야합니다. 들어오는 배열 구조가 요구 사항을 충족하지 않으면 함수가 제대로 작동하지 않을 수 있습니다.

샘플 코드 :

 $data = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

$names = array_column($data, 'name'); // 정상적으로 반환하십시오 ['Alice', 'Bob', 'Charlie']

데이터 배열의 구조가 변경되면 Array_Column이 빈 배열을 반환 할 수 있습니다.

오류 구조의 예 :

 $data = [
    ['name' => 'Alice'],
    ['name' => 'Bob'],
    ['name' => 'Charlie']
];

$names = array_column($data, 'id'); // 빈 배열을 반환하십시오,왜냐하면'id'존재하지 않습니다

이 예에서는 배열의 요소에 ID 키가 없으므로 Array_Column에는 ID 열을 추출 할 수 없으며 결국 빈 배열을 반환 할 수 없습니다.

2. 잘못된 열 이름

Array_Column 의 두 번째 매개 변수는 열 이름 (키 이름)입니다. 전달 된 열 이름이 배열 요소에서 일치 키를 찾지 못하면 함수는 빈 배열을 반환합니다.

샘플 코드 :

 $data = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

$ids = array_column($data, 'id'); // 정상적으로 반환하십시오 [1, 2, 3]

들어오는 열 이름이 철자화되거나 데이터에 열이 존재하지 않으면 Array_Column은 빈 배열을 반환합니다.

 $ids = array_column($data, 'iddd'); // 빈 배열을 반환하십시오,왜냐하면'iddd'列존재하지 않습니다

열 이름이 올바른지 확인하고 각 요소에 열이 발견되어 있는지 확인하십시오.

3. 배열에는 비 어류 요소가 포함되어 있습니다

Array_Column은 전달 된 배열의 각 요소가 배열 또는 객체 여야한다고 가정합니다. 요소가 스칼라 값 (예 : 문자열 또는 숫자) 인 경우 Array_Column은 이러한 요소를 처리하지 못할 수 있으므로 빈 배열을 반환 할 수 있습니다.

샘플 코드 :

 $data = [
    ['id' => 1, 'name' => 'Alice'],
    'invalid_data',
    ['id' => 2, 'name' => 'Bob']
];

$names = array_column($data, 'name'); // 빈 배열을 반환하십시오,왜냐하면'data'배열에는 비 어류 요소가 포함되어 있습니다

이 예에서 'invalid_data'array_column 의 요구 사항을 충족하지 않는 문자열입니다. 따라서 함수는 빈 배열을 반환합니다.

4. 인덱스 사양 오류

Array_Column을 사용하면 인덱스를 새 배열로 지정하기 위해 세 번째 매개 변수를 전달할 수 있습니다. 인덱스를 실수로 설정하면 특히 데이터 구조가 일치하지 않는 경우 빈 배열이 반환 될 수 있습니다.

샘플 코드 :

 $data = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

$names = array_column($data, 'name', 'id'); // 정상적으로 반환하십시오 [1 => 'Alice', 2 => 'Bob', 3 => 'Charlie']

그러나 인덱스 열이 존재하지 않으면 Array_Column이 빈 배열을 반환 할 수 있습니다.

 $names = array_column($data, 'name', 'nonexistent'); // 빈 배열을 반환하십시오,왜냐하면'nonexistent'列존재하지 않습니다

인덱스 열이 배열에 있는지 확인하십시오.

5. 빈 배열 또는 유효하지 않은 데이터가 전달됩니다

마지막으로, 들어오는 배열이 비어 있거나 준수하지 않은 데이터가 포함 된 경우 Array_Column 도 빈 배열을 반환합니다. 예를 들어, 빈 배열 또는 빈 값이 포함 된 배열을 전달하면 리턴 결과가 자연스럽게 비어 있습니다.

샘플 코드 :

 $data = [];

$names = array_column($data, 'name'); // 빈 배열을 반환하십시오,왜냐하면$data비어 있습니다

요약

Array_Column을 사용하는 경우 배열 구조가 요구 사항을 충족시키지 못하고 열 이름이 올바르지 않거나, 비 어류 요소, 인덱스 사양 오류 또는 빈 배열의 패스가 포함되어 있으므로 함수가 빈 배열을 반환 할 수 있습니다. 이러한 문제를 피하려면 배열 구조가 올바른지 확인하고 열 이름이 정확하며 인덱스 사양이 합리적입니다. 데이터 구조를주의 깊게 검토하는 것이 이러한 문제를 피하기위한 열쇠입니다.

비슷한 문제가있는 경우 코드에 전달 된 배열 및 매개 변수를 확인하여 정확성을 확인하십시오.