Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tri dans tableau php

    27 avril 2017 à 13:07:00

    Bonjour à tous :)

    je débute depuis peu PHP

    j'ai récemment construit un tableau de ce type :

    $prix  = 
        [
        '50',
        '60',
        '70',
        '80',
        '90',
        '100',
        '110',
        '120',
        '130',
        '140',
        '150',
        '160',
        '170',
        '180',
        '190',
        '200'
        ];

    Ma question est la suivante :

    Je veux pouvoir afficher mes produits en fonction d'une tranche de prix, par exemple :

    - Afficher uniquement les produits dont le prix max est 150 euros. ou alors selon une tranche entre 50 et 150 euros.

    Je compte mettre en place des boutons ou div avec les tranches de prix affichés et ou lorsque l'on cliquera dessus la condition se mettra en place et les produits s'afficheront.

    Quelqu'un à une solution simple ? plutôt en js ou php du coup ?


    Merci à vous ! :) 


    • Partager sur Facebook
    • Partager sur Twitter
    Loïc
      27 avril 2017 à 13:20:54

      Salut, je ferais un truc du genre.

      $prix =
          [
          50,
          60,
          70,
          80,
          90,
          100,
          110,
          120,
      	130,
      	140,
      	150,
         160,
          170,
          180,
          190,
          200
          ];
      $mini = 50;
      $maxi = 150;
      $nb = count($prix);
      for($i = 0; $i < $nb; $i++){
      	if($prix[$i] >= $mini && $prix[$i] <= $maxi){
      		echo $prix[$i]."<br />";
      	}
      }



      • Partager sur Facebook
      • Partager sur Twitter
        27 avril 2017 à 13:24:06

        Merci je vais essayer ça :)

        Bonne journée à toi !
        • Partager sur Facebook
        • Partager sur Twitter
        Loïc
          27 avril 2017 à 13:38:48

          En PHP, il y a la fonction array_filter aussi.

          function filtrer_par_prix(array $array, int $min, int $max): array {
              return array_filter(
                  $array,
                  function ($v) use ($min, $max) {
                      return $v &gt;= $min &amp;&amp; $v &lt;= $max;
                  }
              );
          }
          
          var_dump(filtrer_par_prix($prix, 50, 150));
          

          Note : le markdown est toujours HS, lire & pour &amp;, < pour &lt; et > pour &gt;

          > plutôt en js ou php du coup ?

          Le client peut avoir désactivé JS ou ne pas en disposer (client en console notamment). D'un autre côté, en le faisant avec JS, tu laisses le client faire le travail au lieu du serveur (= moins d'échanges/requêtes HTTP et moins de charge pour le serveur).

          Tu ne chercherais pas un truc comme le plugin jquery datatables en fait ?

          -
          Edité par julp 27 avril 2017 à 14:57:11

          • Partager sur Facebook
          • Partager sur Twitter
            27 avril 2017 à 14:17:10

            Salut,

            Effectivement, mon soucis est principalement le temps de chargement des pages dont je crains en js si le client doit charger les scripts :(

            Je resterai donc sur du PHP,

            merci pour l'aide ! :)
            • Partager sur Facebook
            • Partager sur Twitter
            Loïc
              27 avril 2017 à 14:40:33

              Salut julp, pourquoi ne pas utiliser le bouton </> pour poster ton code ?
              • Partager sur Facebook
              • Partager sur Twitter
                27 avril 2017 à 14:53:41

                Romuald44 a écrit:

                Salut julp, pourquoi ne pas utiliser le bouton </> pour poster ton code ?


                Je crois que julp est nouveau ici ! :jk:

                Sinon +1 pour datatables, c'est surpuissant et charge très rapidement ta page, et permet de trier sur des champs autant textuels que numériques.

                • Partager sur Facebook
                • Partager sur Twitter

                Tri dans tableau php

                × 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