ホームページ  >  記事  >  バックエンド開発  >  PHP で配列内の指定された複数の列を返す関連メソッドを説明する

PHP で配列内の指定された複数の列を返す関連メソッドを説明する

jacklove
jackloveオリジナル
2018-06-08 16:19:482903ブラウズ

php array_column このメソッドは、配列で指定された 1 つの列を返すことはできますが、複数の列を返すことはできません。この記事では、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
as return 配列のインデックス/キー列。列の整数インデックスまたは文字列キー値にすることができます。
例:
配列内の名前列を返します

<?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、パラメータ呼び出し 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 中国語に注意してください。 Webサイト。

関連する推奨事項:

PHP ベースの Redis カウンタ クラスの詳細な説明

PHP メソッドと一致するかどうかを確認する方法の詳細な説明指定された期間

JS を使用してデバイス情報にアクセスする方法##

以上がPHP で配列内の指定された複数の列を返す関連メソッドを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。