Arrays sorteren
Jim - 30/03/2007 14:31 (laatste wijziging 30/03/2007 14:32)
Lid
Hallo allemaal, ik heb een vraagje.
Zou je arrays net zoals bij mysql kunnen sorteren ? Dus dat ik een array heb zoals deze:
<?php
$m_array[1] = array("name" => "Test1", "rank" => 1);
$m_array[2] = array("name" => "Test2", "rank" => 2);
$m_array[3] = array("name" => "Test3", "rank" => 3);
?>
<?php
$m_array [ 1 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 2 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 3 ] = array ( "name" => "Test3" , "rank" => 3 ) ; ?>
Hierbij wil ik dan enkel de mensen uithalen met rang 2.
Is dit mogelijk ?
Groeten.
9 antwoorden
Gesponsorde links
Godlord - 30/03/2007 14:36 (laatste wijziging 30/03/2007 14:37)
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.
<?php
$m_array[1] = array("name" => "Test1", "rank" => 1);
$m_array[2] = array("name" => "Test2", "rank" => 2);
$m_array[3] = array("name" => "Test3", "rank" => 3);
$m_array[4] = array("name" => "Test1", "rank" => 1);
$m_array[5] = array("name" => "Test2", "rank" => 2);
$m_array[6] = array("name" => "Test3", "rank" => 3);
$i = 1;
$max = size(m_array);
$rank = 0;
while ($i <= $max) {
if ($m_array[$i][rank] == 2) {
$rank++;
}
}
echo ('Er zijn '.$rank.' mensen met rank nummer 2.');
?>
<?php
$m_array [ 1 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 2 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 3 ] = array ( "name" => "Test3" , "rank" => 3 ) ; $m_array [ 4 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 5 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 6 ] = array ( "name" => "Test3" , "rank" => 3 ) ; $i = 1 ;
$max = size( m_array) ;
$rank = 0 ;
while ( $i <= $max ) {
if ( $m_array [ $i ] [ rank] == 2 ) {
$rank ++;
}
}
echo ( 'Er zijn ' . $rank . ' mensen met rank nummer 2.' ) ; ?>
Er zal op de website staan:
Er zijn 2 mensen met rank nummer 2.
Dat is een voorbeeldje.
Godlord - 30/03/2007 14:45 (laatste wijziging 30/03/2007 14:52)
PHP gevorderde
Mensen met alleen 2 kan je er makkelijk dan uit halen uit mijn script.
<?php
$m_array[1] = array("name" => "Test1", "rank" => 1);
$m_array[2] = array("name" => "Test2", "rank" => 2);
$m_array[3] = array("name" => "Test3", "rank" => 3);
$m_array[4] = array("name" => "Test4", "rank" => 1);
$m_array[5] = array("name" => "Test5", "rank" => 2);
$m_array[6] = array("name" => "Test6", "rank" => 3);
$i = 1;
$max = size(m_array);
echo ('Dit zijn de mensen met nummer 2: ');
while ($i <= $max) {
if ($m_array[$i][rank] == 2) {
echo (m_array[$i][name]);
}
}
?>
<?php
$m_array [ 1 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 2 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 3 ] = array ( "name" => "Test3" , "rank" => 3 ) ; $m_array [ 4 ] = array ( "name" => "Test4" , "rank" => 1 ) ; $m_array [ 5 ] = array ( "name" => "Test5" , "rank" => 2 ) ; $m_array [ 6 ] = array ( "name" => "Test6" , "rank" => 3 ) ; $i = 1 ;
$max = size( m_array) ;
echo ( 'Dit zijn de mensen met nummer 2: ' ) ; while ( $i <= $max ) {
if ( $m_array [ $i ] [ rank] == 2 ) {
echo ( m_array
[ $i ] [ name
] ) ; }
}
?>
Dat is een voorbeeld om mensen met rank nummer 2 te laten tonen.
<?php
$m_array[1] = array("name" => "Test1", "rank" => 1);
$m_array[2] = array("name" => "Test2", "rank" => 2);
$m_array[3] = array("name" => "Test3", "rank" => 3);
$m_array[4] = array("name" => "Test4", "rank" => 1);
$m_array[5] = array("name" => "Test5", "rank" => 2);
$m_array[6] = array("name" => "Test6", "rank" => 3);
$i = 1;
$d = 1;
$max = size(m_array);
while ($i <= $max) {
if ($m_array[$i][rank] == 2) {
$newarray[$d] = array("name" => m_array[$i][name]);
$d++;
}
}
?>
<?php
$m_array [ 1 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 2 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 3 ] = array ( "name" => "Test3" , "rank" => 3 ) ; $m_array [ 4 ] = array ( "name" => "Test4" , "rank" => 1 ) ; $m_array [ 5 ] = array ( "name" => "Test5" , "rank" => 2 ) ; $m_array [ 6 ] = array ( "name" => "Test6" , "rank" => 3 ) ; $i = 1 ;
$d = 1 ;
$max = size( m_array) ;
while ( $i <= $max ) {
if ( $m_array [ $i ] [ rank] == 2 ) {
$newarray [ $d ] = array ( "name" => m_array
[ $i ] [ name
] ) ; $d ++;
}
}
?>
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 .
Godlord - 30/03/2007 14:51
PHP gevorderde
Wat staat er op lijn 13 tot 15?
Jim - 30/03/2007 14:54 (laatste wijziging 30/03/2007 14:54)
Lid
syntax error, unexpected '[', expecting ')'
Stijn - 30/03/2007 15:00
PHP expert
<?php
$m_array[1] = array("name" => "Test1", "rank" => 1);
$m_array[2] = array("name" => "Test2", "rank" => 2);
$m_array[3] = array("name" => "Test3", "rank" => 3);
$m_array[4] = array("name" => "Test4", "rank" => 1);
$m_array[5] = array("name" => "Test5", "rank" => 2);
$m_array[6] = array("name" => "Test6", "rank" => 3);
$i = 1;
$d = 1;
$max = size(m_array);
while ($i <= $max) {
if ($m_array[$i]['rank'] == 2) {
$newarray[$d] = array("name" => m_array[$i]['name']);
$d++;
}
}
?>
<?php
$m_array [ 1 ] = array ( "name" => "Test1" , "rank" => 1 ) ; $m_array [ 2 ] = array ( "name" => "Test2" , "rank" => 2 ) ; $m_array [ 3 ] = array ( "name" => "Test3" , "rank" => 3 ) ; $m_array [ 4 ] = array ( "name" => "Test4" , "rank" => 1 ) ; $m_array [ 5 ] = array ( "name" => "Test5" , "rank" => 2 ) ; $m_array [ 6 ] = array ( "name" => "Test6" , "rank" => 3 ) ; $i = 1 ;
$d = 1 ;
$max = size( m_array) ;
while ( $i <= $max ) {
if ( $m_array [ $i ] [ 'rank' ] == 2 ) {
$newarray [ $d ] = array ( "name" => m_array
[ $i ] [ 'name' ] ) ; $d ++;
}
}
?>
keys die type string hebben altijd tussen quotes!
Godlord - 30/03/2007 15:13 (laatste wijziging 31/03/2007 10:57)
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.
Jim - 30/03/2007 16:03
Lid
Ik zal het eens bekijken. Alvast allemaal bedankt.
Gesponsorde links
Dit onderwerp is gesloten .