【PHP7.1以降】1行で配列の値の前後を入れ替える
背景
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
Author And Source
この問題について(【PHP7.1以降】1行で配列の値の前後を入れ替える), 我々は、より多くの情報をここで見つけました https://qiita.com/mikana0918/items/6ca3357cb22662bcbe62著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .