Объединение массивов в PHP
$array1 = [
1 => 'test1',
'2' => 'tests2',
'02' => 'tests2',
3 => 'test3',
];
var_dump($array1);
$array2 = [
1 => 'test1',
'02' => 'tests2',
2 => 'test2',
5 => 'test5',
];
var_dump($array2);
$arrayMergeIndex = array_merge($array1, $array2);
echo('-------array_merge-------'."\n");
var_dump($arrayMergeIndex);
echo('-------array_merge_recursive-------'."\n");
$arrayMergeIndexR = array_merge_recursive($array1, $array2);
var_dump($arrayMergeIndexR);
echo('-------[+]-------'."\n");
$arrayMergeIndexP = $array1 + $array2;
var_dump($arrayMergeIndexP);
*массивы для объединения:
array (size=4)
1 => string 'test1' (length=5)
2 => string 'tests2' (length=6)
'02' => string 'tests2' (length=6)
3 => string 'test3' (length=5)
array (size=4)
1 => string 'test1' (length=5)
'02' => string 'tests2' (length=6)
2 => string 'test2' (length=5)
5 => string 'test5' (length=5)
-------array_merge-------
* если ключ значения массива числовой, то добавляем значение в массив, даже если значение уже есть
* если ключ значения текстовый и значение уже присутствует, то дубль не добавляем
array (size=7)
0 => string 'test1' (length=5)
1 => string 'tests2' (length=6)
'02' => string 'tests2' (length=6)
2 => string 'test3' (length=5)
3 => string 'test1' (length=5)
4 => string 'test2' (length=5)
5 => string 'test5' (length=5)
-------array_merge_recursive-------
* если ключ числовой и значение присутствует, то не добавляем повторяющееся значение
* если ключ текстовый и значение уже присутствует, то объедением значения в подмассив с общим ключом
array (size=7)
0 => string 'test1' (length=5)
1 => string 'tests2' (length=6)
'02' =>
array (size=2)
0 => string 'tests2' (length=6)
1 => string 'tests2' (length=6)
2 => string 'test3' (length=5)
3 => string 'test1' (length=5)
4 => string 'test2' (length=5)
5 => string 'test5' (length=5)
-------[+]-------
* добавляются к первому массиву только отсутствующие ключи из последующих массивов
array (size=5)
1 => string 'test1' (length=5)
2 => string 'tests2' (length=6)
'02' => string 'tests2' (length=6)
3 => string 'test3' (length=5)
5 => string 'test5' (length=5)

array
+
merge
array_merge_recursive
просмотров: 953