ホームページ >バックエンド開発 >PHPの問題 >PHP で + 記号を使用して配列を連結すると、結果はどうなりますか?

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

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-06-11 18:04:202489ブラウズ

この記事では、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 サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。