11/08/2018, 20:45

Cách nối associative array (mảng liên tưởng) trong PHP

Associative array là object sẽ gặp rất nhiều trong quá trình làm PHP. Ở bài này mình sẽ tổng hợp các cách nối associative array phổ biến và sự khác nhau giữa các cách nối đó array_merge array_merge là hàm có sẵn của PHP để nối 2 array với nhau $first = array('key1' => ...

Associative array là object sẽ gặp rất nhiều trong quá trình làm PHP.
Ở bài này mình sẽ tổng hợp các cách nối associative array phổ biến và sự khác nhau giữa các cách nối đó

array_merge

array_merge là hàm có sẵn của PHP để nối 2 array với nhau

$first = array('key1' => 'value1');
$second = array('key2' => 'value2');
$result = array_merge($first,$second);

var_dump($result);
/* 
array(2) { 
["key1"]=> string(6) "value1" 
["key2"]=> string(6) "value2" 
} 
*/

Sử dụng dấu +

$first = array('key1' => 'value1');
$second = array('key2' => 'value2');
$result = $first + $second;

var_dump($result);
/* 
array(2) { 
["key1"]=> string(6) "value1" 
["key2"]=> string(6) "value2" 
} 
*/

Khi key bị trùng lặp

array_merge sẽ overwrite bằng phần tử đúng sau, trong khi + sẽ ưu tiên phần từ đầu tiên

$first = array('key1' => 'value1');
$second = array('key1' => 'value2');

var_dump(array_merge($first,$second));
/* 
array(1) { 
["key1"]=> string(6) "value2" 
} 
*/

var_dump($first + $second);
/*
array(1) { 
["key1"]=> string(6) "value1" 
}
*/

Khi key là số nguyên

Khi key là số nguyên thì array_merge sẽ đánh lại key nhưng + sẽ để nguyên key

$first = array(2 => 'value1');
$second = array(7 => 'value2');

var_dump(array_merge($first,$second));
/*
array(2) { 
[0]=> string(6) "value1" 
[1]=> string(6) "value2" 
}
*/

var_dump($first + $second);
/*
array(2) { 
[2]=> string(6) "value1" 
[7]=> string(6) "value2" 
}
*/
0