Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Methode zum Zurückgeben mehrerer angegebener Spalten in einem Array

PHP-Methode zum Zurückgeben mehrerer angegebener Spalten in einem Array

jacklove
jackloveOriginal
2018-06-15 17:34:452099Durchsuche

Die Methode

php array_column kann eine im Array angegebene Spalte zurückgeben, jedoch nicht mehrere Spalten. In diesem Artikel wird die Verwendung der Methode array_column vorgestellt und Code zur Demonstration verwendet Rückgabe mehrerer in der Array-Methode angegebener Spalten.

1.array_column-Beschreibung

array_column kann eine angegebene Spalte im Array zurückgeben

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

Parameterbeschreibung:

Eingabe
Das mehrdimensionale Array der Array-Spalte muss herausgenommen werden. Wenn ein Array bereitgestellt wird, das eine Reihe von Objekten enthält, werden nur die öffentlichen Eigenschaften direkt abgerufen. Um auch private und geschützte Eigenschaften abzurufen, muss die Klasse die magischen Methoden __get() und __isset() implementieren.

column_key
Die Spalte, die einen Wert zurückgeben muss, kann der Spaltenindex des Indexarrays oder der Schlüssel der Spalte sein Es kann sich um ein assoziatives Array oder um einen Attributnamen handeln. Es kann auch NULL sein. In diesem Fall wird das gesamte Array zurückgegeben (sehr nützlich, wenn es mit dem Parameter index_key zum Zurücksetzen des Array-Schlüssels verwendet wird)

index_key
als Rückgabe Die Index-/Schlüsselspalte des Arrays, die der ganzzahlige Index der Spalte oder der Zeichenfolgenschlüsselwert sein kann.
Beispiel:
Gibt die Namensspalte im Array zurück

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

Ausgabe:

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

2 . Rückgabemethoden zum Angeben mehrerer Spalten in einem Array

Die Methode array_column kann eine angegebene Spalte im Array zurückgeben, aber nicht mehrere Spalten. Daher wurde die folgende Methode geschrieben, die die Rückgabe mehrerer Spalten unterstützt im Array Parameteraufruf Ähnlich wie 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);?>

Ausgabe:

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

In diesem Artikel wird erläutert, wie Sie in PHP mehrere angegebene Spalten in einem Array zurückgeben. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website .

Verwandte Empfehlungen:

JS-Methode zum Abrufen von Zugriffsgeräteinformationen

Lösung für die MySQL-Secure-File-Priv-Option Problemmethode

php verwendet die Methode debug_backtrace, um Codeaufrufe zu verfolgen

Das obige ist der detaillierte Inhalt vonPHP-Methode zum Zurückgeben mehrerer angegebener Spalten in einem Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn