Maison >développement back-end >tutoriel php >Méthode PHP pour renvoyer plusieurs colonnes spécifiées dans un tableau

Méthode PHP pour renvoyer plusieurs colonnes spécifiées dans un tableau

jacklove
jackloveoriginal
2018-06-15 17:34:452212parcourir

La méthode

php array_column peut renvoyer une colonne spécifiée dans le tableau, mais ne peut pas renvoyer plusieurs colonnes. Cet article présentera l'utilisation de la méthode array_column et utilisera le code pour démontrer la méthode. retour de plusieurs colonnes spécifiées dans la méthode array.

1.array_column description

array_column peut renvoyer une colonne spécifiée dans le tableau

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

Description du paramètre :

input
Le tableau multidimensionnel de la colonne du tableau doit être supprimé. Si un tableau contenant un ensemble d'objets est fourni, seules les propriétés publiques seront récupérées directement. Afin de récupérer également les propriétés privées et protégées, la classe doit implémenter les méthodes magiques __get() et __isset().

column_key
La colonne qui doit renvoyer une valeur, cela peut être l'index de colonne du tableau d'index, ou la clé de la colonne du tableau associatif, ou il peut s'agir d'un nom d'attribut. Il peut également être NULL, auquel cas le tableau entier sera renvoyé (très utile lorsqu'il est utilisé avec le paramètre index_key pour réinitialiser la clé du tableau)

index_key
as return La colonne index/clé du tableau, qui peut être l'index entier de la colonne, ou la valeur de la clé de chaîne.
Exemple :
Renvoie la colonne de nom dans le tableau

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

Sortie :

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

2. Méthode pour renvoyer plusieurs colonnes spécifiées dans le tableau

La méthode array_column peut renvoyer une colonne spécifiée dans le tableau, mais ne peut pas renvoyer plusieurs colonnes Par conséquent, la méthode suivante a été écrite pour prendre en charge. renvoyant plusieurs colonnes dans le tableau, l'appel du paramètre est similaire à 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);?>

Sortie :

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

Cet article explique comment PHP renvoie plusieurs colonnes spécifiées dans un tableau. Pour plus de contenu connexe, veuillez faire attention au PHP. Site chinois.

Recommandations associées :

Méthode JS pour obtenir l'accès aux informations sur l'appareil

Solution pour mysql secure-file-priv problème d'option Méthode

php utilise la méthode debug_backtrace pour suivre les appels de code

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn