PHPでは+演算子で配列の足し算ができる!
PHPは便利で、配列の足し算ができます!
たとえばこんな風に、ユーザー情報の配列とログイン情報の配列があって、これらをまとめてひとつの配列にしたい時に使うことができます。
$user = array(
‘name’=>’katty’,
‘background’=>’black’,
‘url’=>’http://choilog.com/’
);
$login = array(
‘id’=>’12345’,
‘password’=>’abcde’
);
print_r($user + $login);
結果は次のようになります。
Array
(
[name] => katty
[background] => black
[url] => http://choilog.com/
[id] => 12345
[password] => abcde
)
使っているのは、ただの+演算子です。簡単です。
array_mergeでも配列の足し算ができる
+演算子でなく、array_mergeという関数を使っても、配列の足し算ができます。
array_merge($user,$login)
この場合は、結果は全く同じになります。
+演算子とarray_mergeの違い
- +演算子は、上書きをしない
- array_mergeは、上書きをする
というのが大きな違いだと思います。
$default = array(
‘phptype’=>’mysql’,
‘username’=>’root’,
‘password’=>”,
‘hostspec’=>’localhost’,
‘database’=>’choilog’
);
$config = array(
‘password’=>’abcde’,
‘options’=>’charset=utf8’
);
print_r($default + $config);
print_r(array_merge($default, $config));
このように$defaultという設定配列に$configという配列を組み合わせて、データベース設定を作るような場合を考えます。
+演算子の場合($default + $config)
+演算子の場合、passwordの要素は演算子の左の配列に最初からありましたので、上書きされません。optionsの要素は左の配列になかったので、追加されます。
Array
(
[phptype] => mysql
[username] => root
[password] =>
[hostspec] => localhost
[database] => choilog
[options] => charset=utf8
)
array_mergeの場合(array_merge($default, $config))
array_mergeの場合、passwordの要素は第1引数の配列に最初からありますが、上書きされます。optionsの要素も、追加されます。
Array
(
[phptype] => mysql
[username] => root
[password] => abcde
[hostspec] => localhost
[database] => choilog
[options] => charset=utf8
)
コメント