2010-04-12 7 views

Répondre

4

Fondamentalement: Faites-le.

Le manual a de bons exemples comme celui-ci:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 2); 
// $input is now array("red", "green") 

si quelque chose ne fonctionne pas pour vous, s'il vous plaît ajouter plus de détails à votre question.

+0

comment supprimer "bleu"? – lovespring

+0

@lovespring vous voulez dire comment trouver la position de l'index de "bleu", correct? –

+0

non, je veux dire, supprimer le "bleu", il suffit de supprimer un élément au milieu de la matrice. – lovespring

1

A partir de (id est l'élément que vous souhaitez supprimer):

$input = array("a", "b", "c", "d", "e"); 
$id=2; 

épissure de tableau:

$a1 = array_slice($input, $id); 
print_r($a1); 

Array 
(
    [0] => c 
    [1] => d 
    [2] => e 
) 

tranche de tableau:

array_splice($input, $id-1); 
print_r($input); 

Array 
(
    [0] => a 
) 

La fusion de la jonction et la tranche vous donnera un tableau qui est le même que le tableau d'entrée, mais sans l'élément spécifique.

Vous pouvez probablement le faire en utilisant une seule ligne, mais je vais laisser cela comme un exercice pour les lecteurs.

1

Est-ce que ce doit être array_splice? Je pense que la façon la plus appropriée (en fonction peut-être sur la taille du tableau, je ne sais pas comment array_search échelles) est d'utiliser array_search() avec unset():

$array = array('foo', 'bar' => 'baz', 'bla', 5 => 'blubb'); 

// want to delete 'baz' 
if(($key = array_search('baz', $array)) !== FALSE) { 
    unset($array[$key]); 
} 
+0

Je sais de cette façon, d'abord désactivé, puis j'utilise array_values. Merci . – lovespring

3

comment supprimer simplement « bleu »?

Ici, vous allez:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, array_search('blue', $input), 1); 
7

fait. J'ai trouvé deux façons de le faire. Cela dépend de la façon dont vous allez gérer le problème de l'indice.

Si vous souhaitez conserver les index après avoir supprimé certains éléments d'un tableau, vous devez utiliser unset().

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 

    /*Here, I am gonna delete "Rick" only but remain the indices for the rest */ 
    unset($array[2]); 
    print_r($array); 
?> 

La eteint serait:

Array ([0] => Tom [1] => Jack [3] => Alex) //The indices do not change! 

Cependant, si vous avez besoin d'un nouveau tableau sans garder les indices précédents, puis utilisez array_splice():

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 
    /*Here,we delete "Rick" but change indices at the same time*/ 
    array_splice($array,2,1); // use array_splice() 

    print_r($array); 
?> 

La sortie de cette le temps serait:

Array ([0] => Tom [1] => Jack [2] => Alex) 

Hope, cela aiderait!

+0

Ce devrait être le accepté – Kenedy

Questions connexes