René Jensen wrote:
> Jeg har nu forstået sådan set hvordan logikken bag arrays i PHP, men det
> næste spørgsmål er så hvordan sorterer man lettest de enkelte
> informationer? F.eks. har man følgende fler-dimensioneret array:
>
> $m_arr = array(
> array("5707020000137", "D");
> array("5708758645256", "S");
> array("5706710212799", "B");
> array("5706550035220", "V");
> array("5050583010557", "P");
> }
Udfra ovenstående forekommer det mig at du kan nøjes med et
en-dimensionelt array:
$m_arr = array (
"5707020000137" => "p",
"5708758645256" => "S",
"5706710212799" => "B",
"5706550035220" => "V",
"5050583010557" => "P"
);
Hvis du laver dit array om som jeg foreslår, er det faktisk ganske
simpelt at sortere:
arsort( $m_arr );
(Hvis du bruger rsort, smider den alle nøglerne væk, det er du nok ikke
interesseret i, men så ved du det).
Hvis du vil fastholde dit to-dimensionelle[1] array, bliver det lidt
mere kompliceret. Du kan f.eks. skrive en sorteringsfunktion selv:
[1] Hvis du f.eks. skal bruge indekserne.
function myRSort($arr1, $arr2) {
$str1 = $arr1[1];
$str2 = $arr2[1];
//Jeg har byttet rundt for at få "reverse order"
return strcmp($str2, $str1);
}
Og så kan du kalde:
uasort( $m_arr, 'myRSort' );
hvis du skal bevare indekserne, eller
usort( $m_arr, 'myRSort' );
hvis du ikke vil bevare indekserne.
>
> Nu skal data så præsenteres i en <TABLE> med alle data præsenteret, men
> sorteret efter kolonne 2, således at de er faldende?
>
Da $m_arr er sorteret er det jo bare klø på:
Med min struktur:
$table = '<table>';
foreach($m_arr as $key => $value) {
$table.='<tr><td>'.$key.'</td><td>'.$value.'</td></tr>';
}
$table.='</table>';
Med din struktur:
$table = '<table border="1">';
foreach($d_arr as $key => $arr) {
$table.='<tr><td>'.$key.'</td>';
foreach($arr as $val) {
$table.='<td>'.$val.'</td>';
}
$table.='</tr>';
}
$table.='</table>';
Du kan evt. kigge her: <
http://www.pert.dk/php/array_test.php>
($m_arr er min array struktur og $d_arr er din array struktur).
Og her: <
http://dk.php.net/rsort>
Så kan du via. "See Also" links, kigge på en masse forskellige
sorteringsfunktioner.
Håber du fik lidt mere indblik i arrays i php :)
MVH Per Thomsen,
http://www.pert.dk/