Объединение массивов в 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