knifflige Array-Funktion
Eddie
- php
Hi there,
ich muss ein Array sortieren, was sich irgendwie garnicht so einfach darstellt:
Das Originalarray sieht so aus:
$land_0 = array("kuerzel" => "cg",
"normalerName" => "Kongo",
"synonym" => "Zaire");
$land_1 = array("kuerzel" => "mm",
"normalerName" => "Myanmar",
"synonym" => "Burma");
$laender[0] = $land_0;
$laender[1] = $land_1;
Und was ich brauche ist das Ganze sortiert (nach Laendernamen), um daraus eine entsprechende DropDown-Box zu generieren, also:
$land_0 = array("kuerzel" => "mm",
"name" => "Burma");
$land_1 = array("kuerzel" => "cg",
"name" => "Kongo");
$land_2 = array("kuerzel" => "mm",
"name" => "Myanmar");
$land_3 = array("kuerzel" => "cg",
"name" => "Zaire");
$result[0] = $land_0;
$result[1] = $land_1;
$result[2] = $land_2;
$result[3] = $land_3;
Irgendeine Idee, wie ich das anpacken kann?
Hi!
Lies mal den 2. Kommentar, vielleicht hilft Dir das: http://www.php.net/manual/de/function.sort.php
Grüße
Andreas
Ich sitze immer noch dran und habe keine Ahnung, wie ich dieses Problem effizient loesen kann.
Mit 250 if-Bedingungen wuerds vielleicht gehen :-(
Noch andere Ideen?
Irgendeine Idee, wie ich das anpacken kann?
<?
$land_0=array(
"kuerzel" => "cg",
"normalerName" => "Kongo",
"synonym" => "Zaire"
);
$land_1 = array(
"kuerzel" => "mm",
"normalerName" => "Myanmar",
"synonym" => "Burma"
);
$i=0;
while(isset(${'land_'.$i})) {
$kuerzel[]=${'land_'.$i}['kuerzel'];
$laender[]=${'land_'.$i}['normalerName'];
if(isset(${'land_'.$i}['synonym'])) {
$kuerzel[]=${'land_'.$i}['kuerzel'];
$laender[]=${'land_'.$i}['synonym'];
}
$i++;
}
array_multisort($laender,SORT_ASC,SORT_STRING,$kuerzel);
foreach($kuerzel as $key=>$value) {
$result[]=array('kuerzel'=>$value,'name'=>$laender[$key]);
}
unset($kuerzel,$laender);
echo '<pre>',"\n";
print_r($result);
echo '</pre>';
?>
P.S.: Vorsicht mit Umlauten und Groß-/Kleinschreibung. Österreich kommt nach Zaire, DEUTSCHLAND nach Djibouti etc...