да, операция += сливает ассоциативки, но:
[code]
<?php
function set($key = false, $value = false)
{
static $set = [];
if ($key && $value) $set += [$key=>$value];
return $set;
}
$array_one = ['key'=>'value', 'key1'=>'value', 'key3'=>'value']; // $this->array
$array_two = ['key'=>'10', 'key2'=>20, 'key3'=>'value22']; // input_array
$array_one += $array_two;
echo 'Array one<br>';
var_dump($array_one);
echo '<br><br>';
foreach ($array_one as $key => $value) {
var_dump(set($key, $value));
echo '<br>';
}
echo '<br>Array two<br>';
var_dump($array_two);
echo '<br><br>';
foreach ($array_two as $key => $value) {
var_dump(set($key, $value));
echo '<br>';
}
echo '<br><br>Result: <br>';
var_dump(set());
[/code]
вывод:
[code]
Array one
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
array(1) { ["key"]=> string(5) "value" }
array(2) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" }
array(3) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" }
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
Array two
array(3) { ["key"]=> string(2) "10" ["key2"]=> int(20) ["key3"]=> string(7) "value22" }
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
Result:
array(4) { ["key"]=> string(5) "value" ["key1"]=> string(5) "value" ["key3"]=> string(5) "value" ["key2"]=> int(20) }
[/code]
вывод писать: $set = $array + $set. но это не есть гуд - каждый раз переменную переписывать.
шах и мат