te16

PHP での配列の分解 – Stitcher.io

(jp) =

# リストまたは []

PHPでは、 list また [] は、いわゆる「言語構造」です。 array(). この言語構​​造は、配列から変数を「引き出す」ために使用されます。 つまり、配列を個別の変数に「分解」します。

この言葉は「破壊」ではなく「破壊」であることに注意してください — それは何か違うものです

これは次のようになります。

$array = [1, 2, 3]; 


list($a, $b, $c) = $array;


[$a, $b, $c] = $array;



好むかどうか list またはその省略形 [] あなた次第です。 人々はそれを主張するかもしれません [] 省略形の配列構文ではあいまいであるため、好む list. ただし、コード サンプルでは簡略版を使用します。

では、これ以上何ができるでしょうか list 行う?

# 要素をスキップ

配列の 3 番目の要素だけが必要だとします。最初の 2 つは、変数を指定しないことでスキップできます。

[, , $c] = $array;

また、 list は常にインデックス 0 から始まります。たとえば、次の配列を見てください。

$array = [
    1 => 'a',
    2 => 'b',
    3 => 'c',
];

で引き出された最初の変数 list だろう null、インデックスを持つ要素がないため 0. これは欠点のように思えるかもしれませんが、幸いなことに、他にも可能性があります。

# 非数値キー

PHP 7.1 では許可されます list 非数値キーを持つ配列で使用します。 これにより、可能性の世界が開かれます。

$array = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
];
['c' => $c, 'a' => $a] = $array;

ご覧のとおり、必要に応じて順序を変更したり、要素を完全にスキップしたりできます。

# 実際には

の用途の一つ list のような関数です parse_urlpathinfo. これらの関数は名前付きパラメーターを含む配列を返すため、次を使用できます。 list 必要な情報を引き出すには:

[
    'basename' => $file,
    'dirname' => $directory,
] = pathinfo('/users/test/file.png');

ご覧のとおり、変数はキーと同じ名前である必要はありません。 また、不明なキーを持つ配列を分解すると、通知がトリガーされることに注意してください。

[
    'path' => $path, 
    'query' => $query,
] = parse_url('https://stitcher.io/blog');

この場合、 $query だろう null.

最後の詳細: 配列で慣れているのと同じように、名前付き destruct で末尾のコンマを使用できます。

# ループ内

ループでリスト構成を使用することもできます。

$array = [
    [
        'name' => 'a',
        'id' => 1
    ],
    [
        'name' => 'b',
        'id' => 2
    ],
];

foreach ($array as ['id' => $id, 'name' => $name]) 
    

これは、たとえば JSON または CSV ファイルを解析するときに役立ちます。 ただし、未定義のキーでも通知がトリガーされることに注意してください。

要約すると、かなり良いケースがいくつかあります。 list 役立つことができます!

次の投稿
10種類の小鳥の写真付き
前の投稿
私は森でジャックスにお金をかけようとするホットな「材木ジル」です

ノート:

AZ: 動物の世界、ペット、ペット、野生の自然に関するカテゴリー記事…
SP:スポーツカテゴリー。
New vs Ne: ニュースコラム。
Te: テクノロジー カテゴリ。
Gt:エンターテインメントカテゴリー。
Bt: 占い、星占い、超常現象、超常現象。
Ta:人生コラム。