LoginSignup
0
0

More than 3 years have passed since last update.

【PHP7.1以降】1行で配列の値の前後を入れ替える

Last updated at Posted at 2020-04-24

背景

Vue.jsで、配列に入ったdata要素を前後でスワップする機能を作成しようと思ったのですが、
reactiveに画面に反映できず、バックエンドで簡単に処理するにはどうしよう?と思い調べてみました。

追記:2020/04/25 ご指摘いただいたので、コードに修正を加えています

コード

example.php
<?php

$array = ['a','b', 'c', 'd', 'e'];
swapValues($array, 2);
var_dump($array);

function swapValues(array &$array, int $key): void
{
    [$array[$key], $array[$key + 1]] = [$array[$key + 1], $array[$key]];
}

よくある書き方として、$tmpなどの配列の値を一時保存するコードはよく見るのですが、
これだと直感的に見てもわかりやすくないですか?

takeaways

これはphp7.1から追加された、「対称的な配列の分解(Symmetric Array Destructuring)」 と呼ばれるシンタックスですね。

配列の短縮構文 ([]) を使って、 代入用に配列の値を取り出せるようになりました (foreach でも使えます)。 これは、list() の代替として使えます (list() もまだ使えます)。

参照:https://www.php.net/manual/ja/migration71.new-features.php

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0