login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sorteren in array

Offline der_mirror - 29/05/2006 13:33 (laatste wijziging 29/05/2006 13:34)
Avatar van der_mirrorNieuw lid Ik probeer al enige tijd een if statement in een array te krijgen en te sorteren, het lukt alleen niet.

de array bestaan uit een aantal waarden, even een snel voorbeeld:
De query heb ik even achterwege gelaten.

<?php

$array = Array();

while($obj = mysql_fetch_object($q))
{
$array[] = "$obj->ID $obj->ORDERDTG $obj->NAAM $obj->DESCRIPTION";
}

while($obj2 = mysql_fetch_object($q2))
{
$array[] = "$obj2->ID $obj2->ORDERDTG $obj2->NAAM $obj2->DESCRIPTION";
}

//Nu wil ik dus dat de array eerst op ID sorteerd en daarna op ORDERDTG (orderdtg is order datum tijd)

asort ($array);

//ik zou ook willen dat ik een soort if statement in de loop kan zetten dat wanneer de loop bij 3 is hij iets doet bijvoorbeeld een tweede loop starten of zo...

foreach($array as $i)
{
echo $i<br>;
}

php?>

2 antwoorden

Gesponsorde links
Offline Thomas - 29/05/2006 13:40 (laatste wijziging 29/05/2006 13:41)
Avatar van Thomas Moderator Je kunt toch in je query aangeven hoe het resultaat gesorteerd dient te worden met behulp van ORDER BY ID, ORDERDTG?

Ik denk trouwens dat je niet per sé hoeft te sorteren op ORDERDTG, omdat hogere IDs altijd horen bij latere ORDERDTGs?

Elke 3 stappen in een lus iets doen kan met de modulo-operator % ("rest na deling"). Voorbeeld:

  1. <?php
  2. for($i=0; $i < 15; $i++)
  3. {
  4. // als de rest na deling van $i door 3 0 is...
  5. if(($i % 3) == 0)
  6. {
  7. // ... druk iets af
  8. echo "bliep";
  9. }
  10. }
  11. ?>


($i % 3) == 0 kun je nog verkorten tot !($i % 3).
Offline der_mirror - 29/05/2006 16:36
Avatar van der_mirror Nieuw lid Het probleem is eigelijk dat de data uit twee tabellen komt waardoor je te maken krijgt met soms wel meer dan twee dezelfde ID's en om die dan weer op een bepaalde manier te kunnen rangschikken heb ik orderdrg toegevoegd.

Het gaat er dus om dat de gebruiker moet kunnen bepalen waar wat komt te staan. Oftwel, welk nummer 1tje bovenaan komt te staan en welke daaronder etc.

Op deze manier heeft het dus ook geen zin om de query aan te passen omdat de array de waarden bij elkaar pakt en daarna pas sorteert.

V.B.

ID
1
2
2
2
3
4
5
5
5
6
7
8
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.191s