login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Arrays sorteren

Offline Jim - 30/03/2007 14:31 (laatste wijziging 30/03/2007 14:32)
Avatar van JimLid Hallo allemaal, ik heb een vraagje.

Zou je arrays net zoals bij mysql kunnen sorteren ? Dus dat ik een array heb zoals deze:

  1. <?php
  2. $m_array[1] = array("name" => "Test1", "rank" => 1);
  3. $m_array[2] = array("name" => "Test2", "rank" => 2);
  4. $m_array[3] = array("name" => "Test3", "rank" => 3);
  5. ?>


Hierbij wil ik dan enkel de mensen uithalen met rang 2.

Is dit mogelijk ?

Groeten.

9 antwoorden

Gesponsorde links
Offline Godlord - 30/03/2007 14:36 (laatste wijziging 30/03/2007 14:37)
Avatar van Godlord PHP gevorderde Sorteren zou je kunnen met while of een for loop.

Als je dus bv. alleen 2 wilt eruit halen dan kun je het zo doen.
  1. <?php
  2. $m_array[1] = array("name" => "Test1", "rank" => 1);
  3. $m_array[2] = array("name" => "Test2", "rank" => 2);
  4. $m_array[3] = array("name" => "Test3", "rank" => 3);
  5. $m_array[4] = array("name" => "Test1", "rank" => 1);
  6. $m_array[5] = array("name" => "Test2", "rank" => 2);
  7. $m_array[6] = array("name" => "Test3", "rank" => 3);
  8. $i = 1;
  9. $max = size(m_array);
  10. $rank = 0;
  11. while ($i <= $max) {
  12. if ($m_array[$i][rank] == 2) {
  13. $rank++;
  14. }
  15. }
  16. echo ('Er zijn '.$rank.' mensen met rank nummer 2.');
  17. ?>


Er zal op de website staan:
Er zijn 2 mensen met rank nummer 2.

Dat is een voorbeeldje.
Offline Jim - 30/03/2007 14:39
Avatar van Jim Lid Hmm, bedankt maar dat bedoelde ik niet helemaal.

Ik bedoel dat je net zoals iets als in MySQL:

SELECT * FROM table WHERE rank=2;

Dat moet toch ook lukken ? 
Offline Godlord - 30/03/2007 14:45 (laatste wijziging 30/03/2007 14:52)
Avatar van Godlord PHP gevorderde Mensen met alleen 2 kan je er makkelijk dan uit halen uit mijn script.

  1. <?php
  2. $m_array[1] = array("name" => "Test1", "rank" => 1);
  3. $m_array[2] = array("name" => "Test2", "rank" => 2);
  4. $m_array[3] = array("name" => "Test3", "rank" => 3);
  5. $m_array[4] = array("name" => "Test4", "rank" => 1);
  6. $m_array[5] = array("name" => "Test5", "rank" => 2);
  7. $m_array[6] = array("name" => "Test6", "rank" => 3);
  8. $i = 1;
  9. $max = size(m_array);
  10. echo ('Dit zijn de mensen met nummer 2: ');
  11. while ($i <= $max) {
  12. if ($m_array[$i][rank] == 2) {
  13. echo (m_array[$i][name]);
  14. }
  15. }
  16. ?>


Dat is een voorbeeld om mensen met rank nummer 2 te laten tonen.

  1. <?php
  2. $m_array[1] = array("name" => "Test1", "rank" => 1);
  3. $m_array[2] = array("name" => "Test2", "rank" => 2);
  4. $m_array[3] = array("name" => "Test3", "rank" => 3);
  5. $m_array[4] = array("name" => "Test4", "rank" => 1);
  6. $m_array[5] = array("name" => "Test5", "rank" => 2);
  7. $m_array[6] = array("name" => "Test6", "rank" => 3);
  8. $i = 1;
  9. $d = 1;
  10. $max = size(m_array);
  11. while ($i <= $max) {
  12. if ($m_array[$i][rank] == 2) {
  13. $newarray[$d] = array("name" => m_array[$i][name]);
  14. $d++;
  15. }
  16. }
  17. ?>


Hiermee zet je de mensen met rank 2 in een nieuwe array. Wel zonder de rank natuurlijk omdat dat niet nodig is. Want het is toch allemaal rank 2 .
Offline Jim - 30/03/2007 14:50
Avatar van Jim Lid Hmm, krijg twee keer "unexpected '[' on line 14".

Zal even zelf uitzoeken wat het is 
Offline Godlord - 30/03/2007 14:51
Avatar van Godlord PHP gevorderde Wat staat er op lijn 13 tot 15?
Offline Jim - 30/03/2007 14:54 (laatste wijziging 30/03/2007 14:54)
Avatar van Jim Lid syntax error, unexpected '[', expecting ')'
Offline Stijn - 30/03/2007 15:00
Avatar van Stijn PHP expert
  1. <?php
  2. $m_array[1] = array("name" => "Test1", "rank" => 1);
  3. $m_array[2] = array("name" => "Test2", "rank" => 2);
  4. $m_array[3] = array("name" => "Test3", "rank" => 3);
  5. $m_array[4] = array("name" => "Test4", "rank" => 1);
  6. $m_array[5] = array("name" => "Test5", "rank" => 2);
  7. $m_array[6] = array("name" => "Test6", "rank" => 3);
  8. $i = 1;
  9. $d = 1;
  10. $max = size(m_array);
  11. while ($i <= $max) {
  12. if ($m_array[$i]['rank'] == 2) {
  13. $newarray[$d] = array("name" => m_array[$i]['name']);
  14. $d++;
  15. }
  16. }
  17. ?>
keys die type string hebben altijd tussen quotes!
Offline Godlord - 30/03/2007 15:13 (laatste wijziging 31/03/2007 10:57)
Avatar van Godlord PHP gevorderde Iedereen vergeet wel eens wat en ik werk niet eens vaak met arrays.

Citaat:
Siliecom14's edit:
je had een fout gemaakt, en stijn verbeterde die fout.
Alleen reacties die een bijdrage leveren zijn toegestaan 

Citaat:
Godlord's edit:
Hij deed het grammaticaal schrijven alsof die fout ongelofelijk erg was i.v.m uitroep teken, kijk eens alle topics na, geef niet een iemand de schuld dat zijn reply geen bijdrage levert, er zijn zo genoeg replies die dat niet doen.


Citaat:
Siliecom14's edit:
"Iedereen vergeet wel eens wat en ik werk niet eens vaak met arrays." en dit noem je dus een bijdrage...?

En ik ga ook alle topics na. Als ik een onnodige reply vind, dan zeg ik er iets van (wat hier dus het geval is).

Dat ik iets over jou reply zeg, betekent toch niet meteen dat ik alleen jou in de gaten hou ?
Andere opmerkingen kun je gerust pmen, dan houden we dit topic schoon van dit soort onnodige discussies.
Offline Jim - 30/03/2007 16:03
Avatar van Jim Lid Ik zal het eens bekijken. Alvast allemaal bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s