PHP中用 號連線陣列的結果是?

2021-10-07 23:06:26 字數 1758 閱讀 5197

我們在開發中,有時候會將兩個陣列合併連線起來,這個時候要注意了,千萬不要偷懶直接使用+號哦,為什麼呢?我們看看以下**:

$a = [1, 2];

$b = [4, 5, 6];

$c = $a + $b;

print_r($c);

請用第一直接告訴我它的結果是什麼?或許我這麼問你應該能猜到,它的結果是:

array

( [0] => 1

[1] => 2

[2] => 6

)

看出來了吧,用+號操作符連線的陣列,結果取的是並集。也就是根據鍵,相同鍵的不會覆蓋,沒有鍵加入進來形成乙個新陣列。並不是將兩個陣列真的加起來。

如果我們用$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

)

上述hash陣列,使用array_merge()函式的結果和使用+號的結果是一樣的,這是因為他們還是進行了鍵的對比。所以合併後的陣列不會增加內容,如果是未定義下標的則會直接以數字下標新增進去。

最後,我們再試試.操作符的連線:

$c = $a . $b;

print_r($c);

arrayarray

好吧,強轉成string型別的字串再拼接起來了,並無特別的意義。

測試**:

PHP合併 追加與連線陣列

array merge 函式將陣列合併到一起,返回乙個聯合的陣列。所得到的陣列以第乙個輸入陣列引數開始,按後面陣列引數出現的順序依次迫加。其形式為 1arrayarray merge arrayarray1 array2 arrayn 這個函式將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙...

PHP合併 追加與連線陣列

array merge 函式將陣列合併到一起,返回乙個聯合的陣列。所得到的陣列以第乙個輸入陣列引數開始,按後面陣列引數出現的順序依次迫加。其形式為 1arrayarray merge arrayarray1 array2 arrayn 這個函式將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙...

php連線資料的步驟

1.link mysql connect 主機名,賬號,密碼 連線資料庫 2.mysql select db 庫名 link 選擇資料庫 3.mysql query sql語句 link 傳送sql語句 若是select查詢 返回結果集 若是增刪改,返回boolean布林值 true表示成功,fal...