Me gustaría cambiar el comienzo de mi matriz en PHP. Actualmente tengo:

Array
(
  [0] => Bla##
  [1] => Bla##
  [2] => Bla##
  [3] => Bla##
  [4] => Bla##
  [5] => Bla##

Pero yo quiero

Array
(
  [6] => Bla##
  [7] => Bla##
  [8] => Bla##
  [9] => Bla##
  [10] => Bla##
  [11] => Bla##

Usé array_splice($array, 14, 0, 'Bla##'); para insertar un valor en un índice específico de mi matriz, pero si lo uso, mi matriz comienza desde 0 y no desde 6.

¡Gracias de antemano!

2
iMostLiked 28 abr. 2017 a las 16:27

3 respuestas

La mejor respuesta
$shift = 6;
$array = array_combine(range($shift, count($array)+$shift-1), $array);
5
Dan Miller 28 abr. 2017 a las 13:39

Puedes usar array_walk():

$n = 6;
array_walk($arr, function($value) use (&$x, &$n) {$x[$n] = $value; $n++;});

Demo PHP

0
CONvid19 28 abr. 2017 a las 13:55

Simplemente mueva todas las posiciones de la matriz hacia adelante por 6 0-> 6, 1-> 7, etc.

    $array = [Bla##,Bla##,Bla##,Bla##,Bla##,Bla##];
    $newarray = array();    // Shifted array
    for ($i=0; $i < count($array);$i++) {  
          $newarray[$i+6] = $array[$i];  
    } 
2
clearshot66 28 abr. 2017 a las 13:36