102 votes

PHP Supprimer des éléments du tableau associatif

J'ai un tableau PHP qui ressemble à ceci :

Index              Key     Value
[0]                1       Awaiting for Confirmation
[1]                2       Assigned
[2]                3       In Progress
[3]                4       Completed
[4]                5       Mark As Spam

Quand je var_dump les valeurs du tableau je reçois ceci :

array(5) { [0]=> array(2) { ["key"]=> string(1) "1" ["value"]=> string(25) "Awaiting for Confirmation" } [1]=> array(2) { ["key"]=> string(1) "2" ["value"]=> string(9) "Assigned" } [2]=> array(2) { ["key"]=> string(1) "3" ["value"]=> string(11) "In Progress" } [3]=> array(2) { ["key"]=> string(1) "4" ["value"]=> string(9) "Completed" } [4]=> array(2) { ["key"]=> string(1) "5" ["value"]=> string(12) "Mark As Spam" } }

Je voulais supprimer Terminé et marquer comme spam. Je sais que je peux unset[$array[3],$array[4]), mais le problème est que parfois le numéro d'index peut être différent.

Existe-t-il un moyen de les supprimer en faisant correspondre le nom de la valeur à la valeur de la clé ?

96voto

ADFS Points 61
  ...

  $array = array(
      1 => 'Awaiting for Confirmation', 
      2 => 'Asssigned', 
      3 => 'In Progress', 
      4 => 'Completed', 
      5 => 'Mark As Spam', 
  );



  return array_values($array);
  ...

16voto

webarto Points 11803
$key = array_search("Mark As Spam", $array);
unset($array[$key]);

Pour les baies 2D...

$remove = array("Mark As Spam", "Completed");
foreach($arrays as $array){
    foreach($array as $key => $value){
        if(in_array($value, $remove)) unset($array[$key]);
    }
}

7voto

Anirban Das Points 302

Vous pouvez utiliser ce

unset($dataArray['key']);

3voto

Mikel Annjuk Points 206

Pourquoi ne pas utiliser array_diff ?

$array = array(
    1 => 'Awaiting for Confirmation', 
    2 => 'Asssigned', 
    3 => 'In Progress', 
    4 => 'Completed', 
    5 => 'Mark As Spam', 
);
$to_delete = array('Completed', 'Mark As Spam');
$array = array_diff($array, $to_delete);

Notez simplement que votre tableau sera réindexé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X