Sortieren eines 2-dim Arrays (php3_array_multisort)
<html><head><title>Anzeige</title></head>
<body bgcolor="#eeeeee"><pre>
<h2>Sortieren eines 2-dim Arrays (php3_array_multisort)</h2><hr noshade size=1>
<?php
// ======= Funktion: php3_array_multisort =======================
//
// Vergleicht zwei Assoz.-Array nach deren "values"
function CmpAssozArrays($a,$b){
return strcmp(implode("",$a),implode("",$b));
}
// Sortiert 2-dim-Assoz.-Array nach Values (~= array_multisort bei PHP4)
function php3_array_multisort($arr_2Dim){
usort($arr_2Dim,CmpAssozArrays); // Sortieren mit Sortier-Fktion
return $arr_2Dim;
}
// ======= Programm-Ablauf ======================================
//
// Initialisierung des Array
$arr = array();
$arr[] = array("color" => "#ff0000", "font-size" => "10pt" );
$arr[] = array("color" => "#00ff00", "font-size" => "12pt" );
$arr[] = array("color" => "#0000ff", "font-size" => "14pt" );
$arr[] = array("color" => "#0000ff", "font-size" => "10pt" );
// unsortierte Ausgabe des Array
echo "\n<b>Unsortiert</b>";
for($i=0;$i<count($arr);$i++) {
echo "<hr align=\"left\" width=50%>";
for(reset($arr[$i]); $key = key($arr[$i]); next($arr[$i]) ) {
echo ($i+1).": <b>$key</b> : ";
echo $arr[$i][$key]."</a> \n";
}
}
// sortierte Ausgabe des Array
$arr = php3_array_multisort($arr);
echo "\n<hr noshade align=\"left\" width=\"90%\">\n<br><b>Sortiert</b>";
for($i=0;$i<count($arr);$i++) {
echo "<hr align=\"left\" width=50%>";
for(reset($arr[$i]); $key = key($arr[$i]); next($arr[$i]) ) {
echo ($i+1).": <b>$key</b> : ";
echo $arr[$i][$key]."</a> \n";
}
}
?>
</pre></body></html>