Вставка элемента в середину массива

GrayMaster

Новичок
Вставка элемента в середину массива

Есть ли в ПХП функция для вставки данных в любую часть массива, со смещением последующих элементов ?
т.е.
Код:
array = (1, 2, 3, 4)
После "???("5", 2)" - вставка "5" на 2-й индекс.
Получется
Код:
array = (1, 2, 5, 3, 4)
Спасибо.
 

GrayMaster

Новичок
Хм... Может я чего-то и непонял, но причём здесь array_fill ?
Как добиться желаемого результата ?
 

white phoenix

Новичок
PHP:
function array_push_pos(&$array,$pos=0,$value,$key='')
{
 if (!is_array($array)) {return false;}
 else
 {
  if (strlen($key) == 0) {$key = $pos;}
  $c = count($array);
  $one = array_slice($array,0,$pos);
  $two = array_slice($array,$pos,$c);
  $one[$key] = $value;
  $array = array_merge($one,$two);
  return;
 }
}
$array = array(0,1,2,3,4);
array_push_pos($array,2,'new');
var_dump($array);
/*
array(6) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  string(3) "new"
  [3]=>
  int(2)
  [4]=>
  int(3)
  [5]=>
  int(4)
}
*/
Функция написана черт знает когда, поэтому не суди строго за её неоптимальность.

-~{}~ 29.12.05 18:54:

Panchous
В моей старушке-функции тоже array_slice и array_merge :)
 

zarus

Хитрожопый макак
Код:
$one = array_slice($array,0,$pos);
  $two = array_slice($array,$pos,$c);
зачем делать 2 массива, когда можно отрезать только кусок от оригинала?
Более того, а если возникнет задача вставить в ассоциативный массив, то как будем поступать в этом случае?
 
Сверху