Sorteren m.b.v een array

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Hallo,

Het onderstaande script sorteerd niet (goed).
Wat doe ik fout?

Ik heb zelf zo'n idee dat het misgaat bij $mappen = array ("$datum"=>"$naam");

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<? 
function cmp($a, $b)  
{ 
   if ($a == $b) { 
       return 0; 
   } 
   return ($a > $b) ? -1 : 1; 
} 

//mapnaam splitsen 
$splitmap = explode ('DD',''.$open_folder.''); 
$naam  = $splitmap[0];  
$datum = $splitmap[1];     
//einde mapnaam splitsen 

//sorteren 
$mappen = array ("$datum"=>"$naam"); 
uksort ($mappen, "cmp"); 
while (list($key, $value) = each($mappen)) { 
    
   $Getdatum = explode ('-',''.$key.''); 
   $jaar  = $Getdatum[0];  
   $maand = $Getdatum[1]; 
   $dag = $Getdatum[2];        
         
   $value = str_replace("_","&nbsp;",$value); 
   $open = "<a href='pics.php?show=thumbs&folder=$open_folder'>" . $value . "</a>"; 
         
   echo "$dag/$maand/$jaar - $open<br>";  
} 

?>

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 17-02 19:31
wat is uberhaupt de output van een var_dump $mappen voor en na het sorteren?


en het kan aan mij liggen, maar er wordt maar 1 waarde gesorteerd?

a) waarom splits je die bestandsnaam naar een splitnaam[]?
b) waarom gooi je alleen de eerste waardes ervan in een $naam en $datum?
c) wat valt er dan te sorteren aan 1 record?

kan zijn dat ik wat over het hoofd zie hoor......

[ Voor 67% gewijzigd door cavey op 31-12-2004 17:44 ]


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 12-12-2025
Moet het niet zijn
$mappen = uksort ($mappen, "cmp");

i.p.v.

uksort ($mappen, "cmp");

?

We are shaping the future


  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
komakeef, Ja ik snap mijn eigen script onderhand ook niet meer |:(

Heb jij een idee hoe het wel moet?

Alex, nee dat werkt ook niet

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 17-02 19:31
Dennisderoo schreef op vrijdag 31 december 2004 @ 17:51:
komakeef, Ja ik snap mijn eigen script onderhand ook niet meer |:(

Heb jij een idee hoe het wel moet?

Alex, nee dat werkt ook niet
mja, in dit soort gevallen ga ik eerst maar kijken

a) wat staat er in m'n arrays (var_dump () is een handige functie).
b) de overige bewerkingen ff in een /* */ blok zetten en net zo lang tweaken tot m'n array resultaat is zoals ik het hebben wil.

ik heb hier nog een handige functie (imho).

of naja, tweetal functies :P hoewel je de echonl() weg kan laten..

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function echonl($string)
{
  echo $string."\n";
}

function test()
{
  $args = func_get_args();
  echonl("<pre>");
  foreach($args as $key=>$val)
    {
      var_dump($val);
    }
  echonl("</pre>");
}


Daarmee check ik meestal m'n vage bewerkingen. inhouden van variabelen etc...

je kan de functie zo gebruiken:

test($var, $var, $var, $var, $var,....);

dus... suc6!! maar hmm, die associated array die je opbouwt...

is het de bedoeling dat er een arary in $naam en $datum komt te staan?

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
komakeef, bedankt voor de info iig!
die associated array die je opbouwt...

is het de bedoeling dat er een arary in $naam en $datum komt te staan?
Je bedoeld dit stukje neem ik aan? $mappen = array ("$datum"=>"$naam");

Ik probeer hiermee een array te maken die er dan uiteindelijk bijvoorbeeld zo uit gaat zien:
$mappen = array ("2004-12-08"=>"hoi", "2004-12-06"=>"hallo", "2004-12-18"=>"Naam3", "2004-11-06"=>"Naam4", "2005-01-01"=>"Naam5");


EDIT:
Wacht ik zou heel het principe effe uitleggen:

Ik heb heel veel mappen met daarin foto's.
In de naam van de map staat ook een datum.
Voorbeeld van een mapnaam: Oudjaarsfeestje_2004-31-12

Mijn bedoeling is nu dat hij die datum er uit haald zodat hij de mappen op volgorde kan weergeven.

[ Voor 50% gewijzigd door Dennisderoo op 31-12-2004 18:29 ]


  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 17-02 19:31
hmmmmmmm ah. ok. dat is al iets duidelijker (was ff eten en toen GTA:SA spelen en eh.. :P)

1) eerst alle dirs inlezen en in een array opslaan
2) daarna door de array heen stappen (foreach lusje?) en de boel splitten.... de gesplitte waardes gooi je dan in een $naam[] en een $datum[] en daarna moet je die 2 arrays weer aan elkaar knopen tot een associated array (hmm kan dat niet makkelijker? naja, als je iedere keer $naam[]=$split[0] doet en $datum=$split[1], dan zouden de 2 arrays iig gelijk moeten lopen)

3) tja, dus die associated array maken, weet zo 123 even niet meer hoe je dat het handigste kan doen.... en dan zou je klaar moeten zijn denk ik zo... of iig een stuk verder?

hope it works :) Ik ga iig ff lekker offline en me klaar maken voor een rustig avondje zuipen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:43

gorgi_19

Kruimeltjes zijn weer op :9

komakeef schreef op vrijdag 31 december 2004 @ 20:31:
hope it works :) Ik ga iig ff lekker offline en me klaar maken voor een rustig avondje zuipen.
Dan mag hij wmb daarna gelijk een nieuw topic openen, waarin hij duidelijk uitlegt wat er waar fout gaat en niet lukt.

Voor Dennisderoo : Het is niet de bedoeling van Programming & Webscripting om je code te dumpen met de opmerking: het werkt niet, wie zegt mij wat er mis is. Debuggen mag je zelf doen.

Zie ook P&W FAQ - De "quickstart"

[ Voor 48% gewijzigd door gorgi_19 op 01-01-2005 14:15 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.