Jump to content
Sign in to follow this  
sandrinoo

Tri array jusqu'à une certaine valeur

Rate this topic

Recommended Posts

Bonjour à toute la communauté de Webmaster hub,

Voilà mon souci, j'ai une fonction de tri décroissant sur les valeurs 42587,36524,18521 :

$val = array(    array(1, 'produit', 18521),    array(2, 'produit', 42587),    array(3, 'produit', 36524),);function cmp($a,${    if($a[2]===$b[2]) return 0;    return $a[2]<$b[2]? 1:-1;};usort($val,'cmp');print_r($val);

Voilà mon souci :

J'aurais voulu implémenter ci-dessus un code pour afficher seulement le résultat décroissant jusqu'à une certaine valeur de 37000 (ce qui supprime alors la ligne 42587).

Après plusieurs tentatives, cela ne fonctionne pas je ne sais plus comment m'y prendre, avec un if ($a[2] <= '37000'), un unset, autre chose ?

Merci à la personne qui lira mon message...

sand.

Share this post


Link to post
Share on other sites

Salut,


Tu veux stopper le tri avant ta valeur ou juste ne pas afficher ensuite les valeurs supérieures ou égales à cette valeur ?


Share this post


Link to post
Share on other sites

Salut Blackpage,



je ne sais pas vraiment, la solution la plus légère...


plutôt juste ne pas afficher les valeurs supérieures à cette valeur...


Edited by sandrinoo

Share this post


Link to post
Share on other sites

<?php

$val = array(

array(1, 'produit', 18521),

array(2, 'produit', 42587),

array(3, 'produit', 36524),);

function vireLesValeursGT37000($item){

return $item[2]<37000? $item : false;

}

$val = array_filter($val, 'vireLesValeursGT37000');

function cmp($a,$B){

if($a[2]===$b[2]) return 0;

return $a[2]<$b[2]? 1:-1;

}

usort($val,'cmp');

print_r($val);

array_filter() ;) Utilise le avant, j'ai pas testé mais je pense que le traitement est moins lourd qu'un sort

  • Upvote 1

Share this post


Link to post
Share on other sites

Vous venez de faire une heureuse du côté de Lyon !


Ca fonctionne parfaitement.


Je n'ai pas toujours le temps de trouver la solution et quand je tourne en rond depuis plus de 2 heures c'est vrai que je perds courage...


Merci beacoup SStephane !


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...