PHPのarray_combineという関数を知ったので触ってみる

どうも、いつものtaanatsuです。
皆さんはPHP連想配列を使っていますか?
使ってない!?素晴らしいですね!

連想配列パット見、何が中に入っているのかがわからないので、あまり使わないようにしております。

しかし、古きフレームワークがまだ残っている部分で、そのフレームワーク連想配列推しな場合、
どうしても連想配列を使わないといけないことがあります。
悲しいですね。

やりたいこと

配列のキーと値が一緒の連想配列を作りたい

愚直に書いた

<?php
$array = [
    'a',
    'b',
    'c',
    'd',
    'e',
];

$result = [];
foreach ($array as $item) {
    $result[$item] = $item;
}

var_dump($result);

# array(5) {
#   ["a"]=>
#   string(1) "a"
#   ["b"]=>
#   string(1) "b"
#   ["c"]=>
#   string(1) "c"
#   ["d"]=>
#   string(1) "d"
#   ["e"]=>
#   string(1) "e"
# }

array_combineを使ってみる

https://www.php.net/manual/ja/function.array-combine.php

<?php
$array = [
    'a',
    'b',
    'c',
    'd',
    'e',
];

$result = array_combine($array, $array);
var_dump($result);

# array(5) {
#   ["a"]=>
#   string(1) "a"
#   ["b"]=>
#   string(1) "b"
#   ["c"]=>
#   string(1) "c"
#   ["d"]=>
#   string(1) "d"
#   ["e"]=>
#   string(1) "e"
# }

行数が減りましたね!
…………でも、あんまり使いたくないですね。

リファクタリングするときは、連想配列を消してModelを使っていくようにしましょう。

今回はこのへんで 。
ではまた次回!