반응형
php array_column 메서드는 배열에 지정된 열을 반환할 수 있지만 여러 열을 반환할 수 없습니다. 이 문서에서는 array_column 메서드의 사용을 설명하고 배열에 지정된 여러 열을 반환하는 방법을 코드 시연합니다.
1.array_column설명
array_column은 배열에 지정된 열을 반환할 수 있습니다
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
매개 변수 설명:
인풋
배열 열을 꺼내는 다차원 배열이 필요하다. 객체 집합을 포함하는 배열이 있는 경우 public 속성만 직접 꺼냅니다. private와 protected 속성을 모두 추출하기 위해서는 _get()과 _isset() 매직 메서드를 구현해야 합니다.
column_key
값을 반환해야 하는 열은 삭일 수 있다배열의 열 인덱스를 따오거나 배열의 열을 연관시키는 키도 속성 이름일 수 있습니다. NULL일 수도 있습니다. 이 경우 전체 배열이 반환됩니다. (index_key 인수에 맞게 배열 키를 재설정할 때 유용합니다.)
index_key
배열의 인덱스/ 키를 반환하는 열열의 정수 인덱스 또는 문자열 키 값일 수 있습니다.
예:
배열에서 열 되돌리기Name
<?php
$arr = array(
array('id'=>1001, 'name'=>'fdipzone', 'age'=>18, 'profession'=>'programmer'),
array('id'=>1002, 'name'=>'terry', 'age'=>19, 'profession'=>'designer'),
array('id'=>1003, 'name'=>'alex', 'age'=>20, 'profession'=>'tester'),
);
$result = array_column($arr, 'name');
print_r($result);
?>
출력:
Array
(
[0] => fdipzone
[1] => terry
[2] => alex
)
2.배열에서 지정된 여러 열을 반환하는 방법
array_column 방법 가능반환 배열에서 열을 하나 지정하지만 여러 열을 반환할 수 없기 때문에 다음과 같은 방법을 씁니다. 배열에서 여러 열을 반환할 수 있습니다. 매개 변수 호출은 array_column과 비슷합니다
<?php
/**
* 返回数组中指定多列배열에 지정된 열을 반환합니다
*
* @param Array $input 배열의 다차원 배열 가져오기
* @param String $column_keys 열 이름, 쉼표로 구분된 이름, 전달되지 않으면 모든 열로 돌아가기
* @param String $index_key 배열의 인덱스를 반환하는 열
* @return Array
*/
function array_columns($input, $column_keys=null, $index_key=null){
$result = array();
$keys =isset($column_keys)? explode(',', $column_keys) : array();
if($input){
foreach($input as $k=>$v){
// 반환 열 지정
if($keys){
$tmp = array();
foreach($keys as $key){
$tmp[$key] = $v[$key];
}
}else{
$tmp = $v;
}
// 인덱스 열 지정
if(isset($index_key)){
$result[$v[$index_key]] = $tmp;
}else{
$result[] = $tmp;
}
}
}
return $result;
}
// 데모 코드
$arr = array(
array('id'=>1001, 'name'=>'fdipzone', 'age'=>18, 'profession'=>'programmer'),
array('id'=>1002, 'name'=>'terry', 'age'=>19, 'profession'=>'designer'),
array('id'=>1003, 'name'=>'alex', 'age'=>20, 'profession'=>'tester'),
);
echo '반환 열과 색인 열'.PHP_EOL 지정;
$result = array_columns($arr, 'name,profession', 'id');
print_r($result);
echo PHP_EOL.'반환 열 지정, 색인 열 지정 안 함'. PHP_EOL;
$result = array_columns($arr, 'name,profession');
print_r($result);
echo PHP_EOL.'반환 열을 지정하지 않고 인덱스 열 '.PHP_EOL' 을 지정합니다;
$result = array_columns($arr, null, 'id');
print_r($result);
echo PHP_EOL.'반환 열, 인덱스 열'.PHP_EOL을 지정하지 않음;
$result = array_columns($arr);
print_r($result);
?>
출력:
반환 열과 색인 열 지정
Array
(
[1001] => Array
(
[name] => fdipzone
[profession] => programmer
)
[1002] => Array
(
[name] => terry
[profession] => designer
)
[1003] => Array
(
[name] => alex
[profession] => tester
)
)
반환 열 지정, 색인 열 지정 안 함
Array
(
[0] => Array
(
[name] => fdipzone
[profession] => programmer
)
[1] => Array
(
[name] => terry
[profession] => designer
)
[2] => Array
(
[name] => alex
[profession] => tester
)
)
반환 열을 지정하지 않고 색인 열 지정
Array
(
[1001] => Array
(
[id] => 1001
[name] => fdipzone
[age] => 18
[profession] => programmer
)
[1002] => Array
(
[id] => 1002
[name] => terry
[age] => 19
[profession] => designer
)
[1003] => Array
(
[id] => 1003
[name] => alex
[age] => 20
[profession] => tester
)
)
반환 열을 지정하지 않고 색인 열을 지정하지 않음
Array
(
[0] => Array
(
[id] => 1001
[name] => fdipzone
[age] => 18
[profession] => programmer
)
[1] => Array
(
[id] => 1002
[name] => terry
[age] => 19
[profession] => designer
)
[2] => Array
(
[id] => 1003
[name] => alex
[age] => 20
[profession] => tester
)
)
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 지정한 시간대가 맞는지 확인하는 방법 (0) | 2022.09.12 |
---|---|
php 2차원 배열의 여러 1차원 배열의 합성 방법 (0) | 2022.09.12 |
php 로컬 및 원격 파일 존재 여부 판단 (0) | 2022.09.12 |
php는 정칙으로 가로세로 스타일 제거 (0) | 2022.09.05 |
php 함수는 가변적인 수의 인자를 사용합니다 (0) | 2022.09.05 |