PHP - añadir datos en medio de un array

 
Vista:
sin imagen de perfil

añadir datos en medio de un array

Publicado por Antonio (13 intervenciones) el 02/06/2014 13:35:35
Hola he hecho un código para añadir unos números a partir de una determinada posición pero no consigo realizarlo
solo consigo añadir el 4.
este es el código el array tendria que quedar así:(7,8,10,4,7,5,2,5,4)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$contenido=array(7,8,10,2,5,4);
$entrada=array(5,7,4);
$posicion=3;
$i=0;
$longitud=count($contenido);
$cantidad=count($entrada)-1;
	while ($i<=$cantidad)
	{
 
	while ($longitud>$posicion)
	{
		$contenido[$longitud]=$contenido[$longitud-1];
		$longitud=$longitud-1;
	}
	$contenido[$posicion]=$entrada[$i];
	$i++;
	}
 
print_r($contenido);
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

añadir datos en medio de un array

Publicado por Alejandro (838 intervenciones) el 02/06/2014 18:41:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No estoy seguro si existe alguna funcion pero igual estas serian mis posibles soluciones.

Solucion 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$contenido=array(7,8,10,2,5,4);
$entrada=array(5,7,4);
$posicion=3;
$longitud=count($contenido);
$cantidad=count($entrada);
for ($i=$longitud+$cantidad-1; $i>$posicion; $i--){
    $contenido[$i]=$contenido[$i-$cantidad];
}
for ($i=$cantidad-1; $i>=0; $i--){
    $contenido[$posicion+$i]=$entrada[$i];
}
ksort($contenido);
print_r($contenido);
?>

Solucion 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$contenido=array(7,8,10,2,5,4);
$entrada=array(5,7,4);
$posicion=3;
foreach($entrada as $v){
    $longitud=count($contenido);
    for ($i=$longitud; $i>=$posicion; $i--){
        $contenido[$i]=$contenido[$i-1];
    }
    $contenido[$posicion]=$v;
}
print_r($contenido);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar