[解決済み] PHPの配列のための+演算子?
2022-04-22 11:52:29
質問
$test = array('hi');
$test += array('test','oh');
var_dump($test);
とは何ですか?
+
は、PHP の配列の意味ですか?
どのように解決するのですか?
<ブロッククオート両方の配列に存在するキーに対して、左側の配列の要素が使用され、 右側の配列の一致する要素は無視されます。
ということは、もしあなたが
$array1 = ['one', 'two', 'foo' => 'bar'];
$array2 = ['three', 'four', 'five', 'foo' => 'baz'];
print_r($array1 + $array2);
を得ることができます。
Array
(
[0] => one // preserved from $array1 (left-hand array)
[1] => two // preserved from $array1 (left-hand array)
[foo] => bar // preserved from $array1 (left-hand array)
[2] => five // added from $array2 (right-hand array)
)
というロジックは
+
は次のスニペットと同等です。
$union = $array1;
foreach ($array2 as $key => $value) {
if (false === array_key_exists($key, $union)) {
$union[$key] = $value;
}
}
Cレベルの実装の詳細に興味がある場合は、次のサイトを参照してください。
- php-src/Zend/ zend_operators.c
注
+
とは異なります。
array_merge()
は、配列を結合することになります。
print_r(array_merge($array1, $array2));
を与えるだろう。
Array
(
[0] => one // preserved from $array1
[1] => two // preserved from $array1
[foo] => baz // overwritten from $array2
[2] => three // appended from $array2
[3] => four // appended from $array2
[4] => five // appended from $array2
)
その他の例については、リンク先のページを参照してください。
関連
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] PHPで空の配列に要素を追加する方法は?
-
[解決済み] PHPで配列の任意の位置に新しい項目を挿入する
-
[解決済み】PHPで配列を別の配列に追加する(array_pushや+ではない)。
-
[解決済み] PHPで配列の先頭に項目を挿入する方法は?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?