PHP で + 記号を使用して配列を連結すると、結果はどうなりますか?

醉折花枝作酒筹
リリース: 2023-03-10 15:04:01
転載
2460 人が閲覧しました

この記事では、PHP で数値を使用して配列を接続する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP で + 記号を使用して配列を連結すると、結果はどうなりますか?

#PHP で数値を使用して配列を接続すると、結果はどうなりますか?

開発中、2 つの配列をマージして接続することがあります。このとき注意する必要があります。怠惰に数値を直接使用しないでください。なぜですか?次のコードを見てみましょう:

$a = [1, 2];
$b = [4, 5, 6];

$c = $a + $b;
print_r($c);
ログイン後にコピー

最初のコードを使用した結果を直接教えてください。おそらく、私がこれを尋ねると、結果は次のようになります:

Array
(
    [0] => 1
    [1] => 2
    [2] => 6
)
ログイン後にコピー

ご覧のとおり、符号演算子を使用して接続された配列の結果は和集合です。つまり、キーに従って、同じキーが上書きされることはなく、新しい配列を形成するためにキーが追加されることもありません。実際には 2 つの配列を加算するわけではありません。

$b $a を使用するとどうなるでしょうか?結果は $b の内容になります。

$c = $b + $a;
print_r($c);

Array
(
    [0] => 4
    [1] => 5
    [2] => 6
)
ログイン後にコピー

では、1,2,4,5,6 のような配列を取得したい場合はどうすればよいでしょうか?そうです、array_merge() 関数を使用するときは、配列 Key:

$c = array_merge($a, $b);
print_r($c);

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 5
    [4] => 6
)

$c = array_merge($b, $a);
print_r($c);

Array
(
    [0] => 4
    [1] => 5
    [2] => 6
    [3] => 1
    [4] => 2
)
ログイン後にコピー

の位置に注意してください。Key/Value 形式の Hash 配列の場合はどうなるでしょうか。結果は同じで、$a 内のキーはマージされず、同じキーは処理されません。

$a = ['a' => 1, 'b' => 2];
$b = ['a' => 4, 'b' => 5, 'c' => 6];

print_r($a+$b);

Array
(
    [a] => 1
    [b] => 2
    [c] => 6
)

$c = array_merge($a, $b);
print_r($c);

$c = array_merge($b, $a);
print_r($c);

Array
(
    [a] => 1
    [b] => 2
    [c] => 6
)
Array
(
    [a] => 4
    [b] => 5
    [c] => 6
)
Array
(
    [a] => 1
    [b] => 2
    [c] => 6
)
ログイン後にコピー

上記のハッシュ配列の場合、array_merge() 関数を使用した結果は数値を使用した結果と同じですが、これはキーの比較が行われているためです。したがって、マージされた配列はコンテンツを追加せず、添字が定義されていない場合は、数値添字を使用して直接追加されます。

最後に、もう一度試してみましょう。演算子接続:

$c = $a . $b;
print_r($c);

ArrayArray
ログイン後にコピー

わかりました。文字列を文字列型に変換して結合することに特別な意味はありません。

テスト コード:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E4%B8%AD%E7%94%A8%2B%E5%8F%B7%E8%BF%9E%E6%8E%A5%E6%95%B0%E7%BB%84%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%EF%BC%9F.php
ログイン後にコピー

推奨学習: php ビデオ チュートリアル

以上がPHP で + 記号を使用して配列を連結すると、結果はどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート