function array_replace(&$array, $key, $insert) {
$pos = array_search($key, array_keys($array));
$first = array_slice ($array, 0, $pos, 1);
$second = array_slice ($array, $pos + 1 , count($array), 1);
$array = array_merge($first, $insert, $second);
}
$a = array("a"=>'aaa', "b"=>'bbb', "c"=>'ccc', "d"=>'ddd');
array_replace($a, 'a', array("f"=>'fff'));
print_r($a);
// Array ( [f] => fff [b] => bbb [c] => ccc [d] => ddd )
ps: и чем же операция сложения здесь правильнее??Это ты просто довел до ума вариант
По сути твой вариант ничего нового не добавил.>>1. Получить ключи массива (array_keys)
>>2. Получить порядковый номер нужного ключа(array_search)
3.array_splice
<?
$a = array("a"=>'aaa', "b"=>'bbb', "c"=>'ccc', "d"=>'ddd');
$b = array("a2"=>'aaa2', "b2"=>'bbb2', "c2"=>'ccc2', "d2"=>'ddd2');
$a_key = 'c';
$b_key = 'b2';
print_r($a);
$tmp = array_keys( $a );
$tmp[ array_search( $a_key, $tmp ) ] = $b_key;
$a = array_combine( $tmp, $a );
$a[ $b_key ] = $b[ $b_key ];
print_r($a);
?>