2009-09-23 7 views
1

Si j'ai ce tableau:Suppression de tableau PHP et ayant des indices ajustés

<?php 

$array[0]='foo'; 
$array[1]='bar'; 
$array[2]='foo2'; 
$array[3]='bar3'; 

?> 

Et je veux supprimer, mais pour s'ajusteront automatiquement les index de toutes les entrées restantes de la deuxième entrée ($array[1]), donc les 2 éléments suivants dont les index sont 2 et 3, deviennent 1 et 2.

Comment cela peut-il être fait, ou y at-il une fonction intégrée pour cela?

Répondre

6

Il y a plusieurs façons de le faire. La première consiste à utiliser array_values après la suppression de l'élément pour obtenir seulement les valeurs:

unset($array[1]); 
$array = array_values($array); 
var_dump($array); 

Une autre est d'utiliser array_splice:

array_splice($array, 1, 1); 
var_dump($array); 
2

Vous pouvez utiliser array_splice(). Notez que cela modifie le tableau transmis plutôt que de renvoyer une copie modifiée. Par exemple:

$array[0] = 'foo'; 
//etc. 

array_splice($array, 1, 1); 

print_r($array); 
1

je toujours utiliser array_merge avec un seul tableau

$array = array_merge($array); 
print_r($array); 

de php.net: http://us.php.net/array_merge Si un seul tableau est donné et le tableau est indexé numériquement, les clés get REINDEXer d'une manière continue.

Questions connexes