sakrileg1980
Gesperrt
Hallo zusammen,
ich habe ein Problem mit einer benutzedefinierten Sortierung die ich versucht habe zu bauen. Ich habe ein Array mit Größen (allerdings sind diese in cm angegeben) in der Form "a x b cm". Diese sollen jetzt von klein nach groß sortiert werden ABER beide Teile (a und b) - also so
10 x 10
20 x 10
20 x 20
20 x 30
30 x 10
usw.
Hier der Code:
Das funzt auf dem 1. Blick auch ganz gut aber eben nicht in allen Fällen. Mit dieser Funktion landet 100 x 100 nach 120 x 90, weil die Zahl an sich größer ist. Ich habe es auch schon versucht zu unterteilen, also zuerst nach a und dann nach b zu fragen aber dann haut das alles überhaupt nicht mehr hin.
Hat jemand 'ne Idee?
ich habe ein Problem mit einer benutzedefinierten Sortierung die ich versucht habe zu bauen. Ich habe ein Array mit Größen (allerdings sind diese in cm angegeben) in der Form "a x b cm". Diese sollen jetzt von klein nach groß sortiert werden ABER beide Teile (a und b) - also so
10 x 10
20 x 10
20 x 20
20 x 30
30 x 10
usw.
Hier der Code:
PHP:
$data['test1'] = 1;
$data['test2'] = 2;
$data['test3'] = 3;
$data['test4'] = 4;
$data['test5'] = 5;
$testarray['10 x 10]'] = $data;
$testarray['50 x 30'] = $data;
$testarray['50 x 20'] = $data;
$testarray['50 x 10'] = $data;
$testarray['150 x 80'] = $data;
$testarray['80 x 50'] = $data;
$testarray['90 x 60'] = $data;
$testarray['120 x 90'] = $data;
$testarray['120 x 60'] = $data;
$testarray['100 x 100'] = $data;
$testarray['100 x 60'] = $data;
$testarray['190 x 50'] = $data;
$testarray['150 x 50'] = $data;
function array_sort_function($a, $b) {
$str_a = explode(' ', $a);
$str_full_a = $str_a[0].$str_a[2];
$str_b = explode(' ', $b);
$str_full_b = $str_b[0].$str_b[2];
if ($str_full_a > $str_full_b) {
return 1;
}
}
uksort($testarray, 'array_sort_function');
Das funzt auf dem 1. Blick auch ganz gut aber eben nicht in allen Fällen. Mit dieser Funktion landet 100 x 100 nach 120 x 90, weil die Zahl an sich größer ist. Ich habe es auch schon versucht zu unterteilen, also zuerst nach a und dann nach b zu fragen aber dann haut das alles überhaupt nicht mehr hin.
Hat jemand 'ne Idee?