>백엔드 개발 >PHP 튜토리얼 >지정된 여러 열을 배열로 반환하는 PHP 메서드

지정된 여러 열을 배열로 반환하는 PHP 메서드

jacklove
jacklove원래의
2018-06-15 17:34:452218검색

php array_column 메서드는 배열에서 지정된 열을 반환할 수 있지만 여러 열을 반환할 수는 없습니다. 이 문서에서는 array_column 메서드 사용을 소개하고 코드를 사용하여 배열에서 지정된 여러 열을 반환하는 방법을 보여줍니다. .

1.array_column 설명

array_column은 배열의 지정된 열을 반환할 수 있습니다

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

매개변수 설명:

input
배열 열의 다차원 배열을 꺼내야 합니다. 개체 집합이 포함된 배열이 제공되면 공용 속성만 직접 검색됩니다. 전용 및 보호 속성도 검색하려면 클래스에서 __get() 및 __isset() 매직 메서드를 구현해야 합니다.

column_key
반환해야 할 열은 인덱스 배열의 열 인덱스일 수도 있고, 연관 배열의 열의 키일 수도 있고, 속성 이름일 수도 있습니다. NULL일 수도 있으며, 이 경우 전체 배열이 반환됩니다(index_key 매개변수와 함께 사용하여 배열 키를 재설정할 때 매우 유용함)

index_key
반환된 배열의 인덱스/키 열로 열의 정수 인덱스 또는 문자열 키 값일 수 있습니다.
예:
배열의 이름 열 반환

<?php$arr = array(    array(&#39;id&#39;=>1001, &#39;name&#39;=>&#39;fdipzone&#39;, &#39;age&#39;=>18, &#39;profession&#39;=>&#39;programmer&#39;),    array(&#39;id&#39;=>1002, &#39;name&#39;=>&#39;terry&#39;, &#39;age&#39;=>19, &#39;profession&#39;=>&#39;designer&#39;),    array(&#39;id&#39;=>1003, &#39;name&#39;=>&#39;alex&#39;, &#39;age&#39;=>20, &#39;profession&#39;=>&#39;tester&#39;),
);$result = array_column($arr, &#39;name&#39;);
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(&#39;,&#39;, $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(&#39;id&#39;=>1001, &#39;name&#39;=>&#39;fdipzone&#39;, &#39;age&#39;=>18, &#39;profession&#39;=>&#39;programmer&#39;),    array(&#39;id&#39;=>1002, &#39;name&#39;=>&#39;terry&#39;, &#39;age&#39;=>19, &#39;profession&#39;=>&#39;designer&#39;),    array(&#39;id&#39;=>1003, &#39;name&#39;=>&#39;alex&#39;, &#39;age&#39;=>20, &#39;profession&#39;=>&#39;tester&#39;),
);echo &#39;指定返回列及索引列&#39;.PHP_EOL;$result = array_columns($arr, &#39;name,profession&#39;, &#39;id&#39;);
print_r($result);echo PHP_EOL.&#39;指定返回列,不指定索引列&#39;.PHP_EOL;$result = array_columns($arr, &#39;name,profession&#39;);
print_r($result);echo PHP_EOL.&#39;不指定返回列,指定索引列&#39;.PHP_EOL;$result = array_columns($arr, null, &#39;id&#39;);
print_r($result);echo PHP_EOL.&#39;不指定返回列,不指定索引列&#39;.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 중국어 웹사이트를 참조하세요.

관련 권장 사항:

장치 정보에 액세스하는 JS 방법

Mysql secure-file-priv 옵션 문제 해결 방법

php에서는 debug_backtrace 방법을 사용하여 코드 호출을 추적합니다

위 내용은 지정된 여러 열을 배열로 반환하는 PHP 메서드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.