2010-09-26 7 views

Répondre

1

Essayez ceci:

$x = array(1,2,3,4,5); 
$x = array_merge(array_slice($x, 0, 3), array(6), array_slice($x, 3)); 
print_r($x); 

sortie;

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 6 
    [4] => 4 
    [5] => 5 
) 
2
array_insert($array,$pos,$val); 

function array_insert($array,$pos,$val) 
{ 
    $array2 = array_splice($array,$pos); 
    $array[] = $val; 
    $array = array_merge($array,$array2); 

    return $array; 
} 
+0

'array_insert()' n'est pas prédéfini en PHP. Vous devez le créer vous-même. – BoltClock

+0

désolé je viens de réaliser que j'avais édité la réponse. –

+0

Cette réponse est la définition de la fonction 'array_insert()' –

0

Il peut par faire comme ceci:

function array_insert_value(array $array = array(), $value = null, $position = null) 
{ 
    if(empty($position)) 
     return array_merge($array, array($value)); 
    else 
     return array_merge(
      array_slice($array, 0, $position), 
      array($value), 
      array_slice($array, $position) 
     );  
} 
1

Utilisez array_splice($array, $pos, 0, array($val)).

+0

'$ longueur' est 0 par défaut; et cela ne fait pas ce que le PO a demandé. Cela remplacera l'élément dans '$ pos' avec' $ val', pas d'insertion dans '$ pos'. – NullUserException

+0

Jetez un oeil à l'exemple # 2. Un '$ length' de 0, bien que non documenté, provoque l'insertion. J'ai noté '= 0' dans la liste des paramètres aussi, il doit s'agir d'un artefact. – aib

+0

Cela fait exactement ce que KoolKabin a demandé, et ne remplace aucun élément. Mais il n'est pas nécessaire de placer la valeur insérée dans un tableau. En outre, cette question me semble une copie exacte de cette question de 9 heures: http://stackoverflow.com/questions/3797239/php-array-insert-new-item-in-any-position/3797526#3797526 – GZipp

0

J'applique cette fonction. J'ai également inclus le code que j'ai utilisé pour les tests J'espère que cela aide.

function chngNdx($array,$ndex,$val){ 
    $aCount = count($array); 

    for($x=($aCount)-1;$x>=$ndex;$x--){ 
     $array[($x+1)] = $array[$x]; 
    } 

    $array[$ndex] = $val; 

    return $array; 
} 

$aArray = array(); 
$aArray[0] = 1; 
$aArray[1] = 2; 
$aArray[2] = 3; 
$aArray[3] = 4; 
$aArray[4] = 5; 
$ndex = 3;  // # on the index to change 0-# 
$val = 6; 

print("before: ".print_r($aArray)."<br />"); 
$aArray = chngNdx($aArray,$ndex,$val); 
print("after: ".print_r($aArray)."<br />"); 
Questions connexes