Home >Backend Development >PHP Tutorial >PHP method to return specified multiple columns in an array

PHP method to return specified multiple columns in an array

jacklove
jackloveOriginal
2018-06-15 17:34:452212browse

php array_column The method can return one column specified in the array, but cannot return multiple columns. This article will introduce the use of the array_column method, and use code to demonstrate the return of multiple columns specified in the array. method.

1.array_column description

array_column can return a specified column in the array

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

Parameter description:

input
The multi-dimensional array of the array column needs to be retrieved. If an array containing a set of objects is provided, only the public properties will be retrieved directly. In order to also retrieve private and protected properties, the class must implement the __get() and __isset() magic methods.

column_key
The column that needs to return a value, it can be the column index of the index array, or the key of the column of the associative array, or it can be an attribute name. It can also be NULL, in which case the entire array will be returned (very useful when used with the index_key parameter to reset the array key)

index_key
as return The index/key column of the array, which can be the integer index of the column, or the string key value.
Example:
Return the name column in the array

<?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);?>

Output:

Array(
    [0] => fdipzone
    [1] => terry
    [2] => alex
)

2. Return Methods for specifying multiple columns in an array

The array_column method can return a specified column in the array, but cannot return multiple columns. So the following method was written to support returning multiple columns in the array, parameter call Similar to 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);?>

Output:

指定返回列及索引列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
        )
)

This article explains how PHP returns multiple columns specified in an array. For more related content, please pay attention to the PHP Chinese website.

Related recommendations:

JS method of obtaining access to device information

Solution to the mysql secure-file-priv option problem Method

php uses the debug_backtrace method to track code calls

The above is the detailed content of PHP method to return specified multiple columns in an array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn