Tri d'un tableau bidimensionnel sur un champ date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tri d'un tableau bidimensionnel sur un champ date

par gobi13 » 03 oct. 2008, 00:34

Ah bah c'est auto résolu alors ?
Oui merci ! :lol:

Je change le sujet pardon...

par AB » 03 oct. 2008, 00:27

Ah bah c'est auto résolu alors ?

par gobi13 » 03 oct. 2008, 00:13

Bon j'ai trouvé, j'ai modifié ma fonction de la sorte :
function record_sort($records, $field, $reverse)
{
//			echo 'record sort<br>';
    $hash = array();												   
    foreach($records as $record){
    	
        $hash[$record[$field]][] = $record;
    }												   

    ($reverse)? krsort($hash,SORT_REGULAR) : ksort($hash,SORT_REGULAR);	    							   	
    $records = array();												   
    
    foreach($hash as $record){
    	foreach($record as $evt){	    	
        	$records[] = $evt;
    	}
    }												   
    return $records;
}
Ainsi je conserve autant d enregistrements qu'au départ même si j'ai plusieurs fois les meme dates.

par lux » 02 oct. 2008, 23:50

Je sais pas si ça peut aider, mais avec natsort() peut-être. Ça m'a déjà sorti de ce genre de galère.

(Mais pas sur que ça marche pour ton cas, à voir)

Tri d'un tableau bidimensionnel sur un champ date

par gobi13 » 02 oct. 2008, 23:40

Salut tout le monde,

Je ne peux pas utiliser le tri de SQL car je construit mon tableau a partir de différentes requêtes et tri.

Mon tableau est construit de la sorte : $eventTab[]= array('date'=> $theEvent['date'], 'value' => $theEvent);

Je veux ensuite trier le tableau par dates croissantes sans perdre l'ordre des associations date -> event bien sur et en gardant les doublons de dates...

J'essaye avec la fonction :
function record_sort($records, $field, $reverse)
{
    $hash = array();												   
    foreach($records as $record){  	
        $hash[$record[$field]] = $record;
    }												   
    ($reverse)? krsort($hash,SORT_REGULAR) : ksort($hash,SORT_REGULAR);													   	
    $records = array();												   
    foreach($hash as $record){	    	
        $records[] = $record;
    }												   
    return $records;
}
Mais je n'ai plus que 22 resultats au lieu de 58 alors je pense que ca vire les doublons :cry:

J'ai déjà cherché un bon moment, testé array_multisort mais sans succès, votre aide est précieuse!
Merci