Partage
  • Partager sur Facebook
  • Partager sur Twitter

array valeur unique

    26 janvier 2020 à 11:59:52

    selon le var_dump suivant :

    array(30) { [0]=> array(10) { [0]=> string(5) "12063" [1]=> string(5) "24638" [2]=> string(5) "14408" [3]=> string(5) "35576" [4]=> string(5) "35618" [5]=> string(5) "13545" [6]=> string(5) "39766" [7]=> string(2) "74" [8]=> string(5) "14465" [9]=> string(4) "1495" } [1]=> array(2) { [0]=> string(5) "31419" [1]=> string(5) "11018" } [2]=> array(12) { [0]=> string(5) "12063" [1]=> string(5) "24638" [2]=> string(5) "14408" [3]=> string(5) "35576" [4]=> string(5) "35618" [5]=> string(5) "13545" [6]=> string(5) "39766" [7]=> string(2) "74" [8]=> string(5) "14465" [9]=> string(4) "1495" [10]=> string(5) "31419" [11]=> string(5) "11018" } [3]=> string(1) "0" [4]=> string(1) "0" [5]=> string(1) "0" [6]=> string(1) "0" [7]=> string(1) "0" [8]=> string(1) "0" [9]=> string(1) "0" [10]=> string(1) "0" [11]=> string(1) "0" [12]=> string(1) "0" [13]=> string(1) "0" [14]=> string(1) "0" [15]=> string(1) "0" [16]=> string(1) "0" [17]=> string(1) "0" [18]=> string(1) "0" [19]=> string(1) "0" [20]=> string(1) "0" [21]=> string(1) "0" [22]=> string(1) "0" [23]=> array(2) { [0]=> string(5) "12063" [1]=> string(5) "24638" } [24]=> string(1) "0" [25]=> string(1) "0" [26]=> string(1) "0" [27]=> string(1) "0" [28]=> string(1) "0" [29]=> string(1) "0" }

    Avec un foreach je récupère bien les valeurs 12063 24638 etc..

    Le problème est que je n'arrive pas à les afficher de façon unique. J'affiche donc 3 fois 12063 par exemple.

    Avez-vous une idée comment faire ?

    J'ai essayé array_unique mais sans résultat. 

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2020 à 12:20:59

      Salut,

      du code

      -
      Edité par christouphe 26 janvier 2020 à 12:21:23

      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2020 à 13:42:43

        Tu as un tableau de tableaux donc si tu t'es "contenté" d'appliquer array_unique au tableau de premier niveau, peu de chances que ça fonctionne comme tu t'y attends.

        A voir aussi d'où provient ce tableau, si ça peut être fait en amont (requête SQL par exemple) ou structuré de façon plus adéquate, ça n'en sera que plus facile.

        • Partager sur Facebook
        • Partager sur Twitter
          26 janvier 2020 à 17:38:28

          Bonjour,

          effectivement ce sont des tableaux dans un tableau :

          $cures1Values = array('12063','24638','14408','35576','35618','13545','39766','74','14465','1495');

          $cures2Values = array('31419','11018'); 

          $cures3Values = array('12063','24638','14408','35576','35618','13545','39766','74','14465','1495','31419','11018'); 

          $arrs= array($cures1Values,$cures2Values,$cures3Values);

          var_dump($arrs);

          J'ai essayé d'abord de les regrouper avec un array_merge, puis ensuite un array_unique mais sans résultat.

          Merci

          • Partager sur Facebook
          • Partager sur Twitter
            26 janvier 2020 à 17:48:45

            Tableaux qui sortent d'où ?

            Une méthode simple et efficace, je pense, serait de faire un array_flip de chacun de ces tableaux puis de les merger (array_merge) et si vraiment ça te gêne de les retrouver en clés un array_keys.

            En code PHP pur :

            function my_array_unique(array $array): array {
                $retval = [];
                foreach ($array as $subarray) {
                    foreach ($subarray as $v) {
                        $retval[$v] /*??*/= TRUE;
                    }
                }
            
                return array_keys($retval);
            }
            

            -
            Edité par julp 26 janvier 2020 à 19:41:51

            • Partager sur Facebook
            • Partager sur Twitter

            array valeur unique

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown