87 votes

ajouter au tableau s'il n'y est pas déjà

Comment ajouter des éléments à un tableau uniquement s'ils n'y sont pas déjà ? J'ai ce qui suit :

 $a=array();
// organize the array
foreach($array as $k=>$v){
    foreach($v as $key=>$value){
        if($key=='key'){
        $a[]=$value;
        }
    }
}

print_r($a);

// Sortir

 Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 1
[4] => 2
[5] => 3
[6] => 4
[7] => 5
[8] => 6

)

Au lieu de cela, je veux que $a se compose des valeurs uniques. (Je sais que je peux utiliser array_unique pour obtenir les résultats souhaités mais je veux juste savoir)

182voto

Marius Schulz Points 5141

Vous devez utiliser la fonction PHP in_array (voir http://php.net/manual/en/function.in-array.php ).

 if (!in_array($value, $array))
{
    $array[] = $value; 
}

Voici ce que dit la documentation à propos de in_array :

Renvoie TRUE si l'aiguille est trouvée dans le tableau, FALSE sinon.

71voto

onteria_ Points 18947

Vous devrez vérifier chaque valeur par rapport à in_array :

 $a=array();
// organize the array by cusip
foreach($array as $k=>$v){
    foreach($v as $key=>$value){
        if(!in_array($value, $a)){
        $a[]=$value;
        }
    }
}

17voto

Sourav Points 4119
if (!in_array(...))  
  array_push(..)

10voto

peschanko Points 301

Facile à écrire, mais pas le plus efficace :

 $array = array_unique(array_merge($array, $array_to_append));

Celui-ci est probablement plus rapide :

 $array = array_merge($array, array_diff($array_to_append, $array));

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