Hallo Jörg,
danke für die Info.
Zumindest scheine ich jetzt auf dem richtigen Weg zu sein.
Mein Code sieht so aus:
foreach($array_spreis as $spreis)
{
$array_staffelpreis[] = array(
'pid' => $spreis[0],
'preis' => $spreis[1],
'einheit' => $spreis[2],
'produktbeschreibung' => $spreis[3],
'optionen' => $spreis[4]);
}
foreach($array_staffelpreis as $key => $row)
{
$array_einheit[$key] = $row['einheit'];
$array_option[$key] = $row['optionen'];
}
array_multisort($array_einheit,SORT_DESC,$array_option,SORT_ASC,$array_staffelpreis);
Vor der Sortierung sieht $array_staffelpreis so aus:
Array (
[0] => Array (
[pid] => 3
[preis] => 13.90
[einheit] => 1
[produktbeschreibung] => 1 kg (1kg = 13,90 €)
[optionen] => 1 )
[1] => Array (
[pid] => 177
[preis] => 19.90
[einheit] => 1
[produktbeschreibung] => 2 kg (1kg = 9,95 €)
[optionen] => 2 )
[2] => Array (
[pid] => 178
[preis] => 39.90
[einheit] => 1
[produktbeschreibung] => 5 kg (1kg = 7,98 €)
[optionen] => 3 )
[3] => Array (
[pid] => 183
[preis] => 12.90
[einheit] => 5
[produktbeschreibung] =>
[optionen] => 1 )
)
Danach so:
Array (
[0] => Array (
[pid] => 183
[preis] => 12.90
[einheit] => 5
[produktbeschreibung] =>
[optionen] => 1 )
[1] => Array (
[pid] => 3
[preis] => 13.90
[einheit] => 1
[produktbeschreibung] => 1 kg (1kg = 13,90 €)
[optionen] => 1 )
[2] => Array (
[pid] => 177
[preis] => 19.90
[einheit] => 1
[produktbeschreibung] => 2 kg (1kg = 9,95 €)
[optionen] => 2 )
[3] => Array (
[pid] => 178
[preis] => 39.90
[einheit] => 1
[produktbeschreibung] => 5 kg (1kg = 7,98 €)
[optionen] => 3 )
)
Hier ist die Zeile mit einheit = 5 also nach ganz oben gerutscht. Richtig wäre aber:
Array (
[0] => Array (
[pid] => 3
[preis] => 13.90
[einheit] => 1
[produktbeschreibung] => 1 kg (1kg = 13,90 €)
[optionen] => 1 )
[1] => Array (
[pid] => 183
[preis] => 12.90
[einheit] => 5
[produktbeschreibung] =>
[optionen] => 1 )
[2] => Array (
[pid] => 177
[preis] => 19.90
[einheit] => 1
[produktbeschreibung] => 2 kg (1kg = 9,95 €)
[optionen] => 2 )
[3] => Array (
[pid] => 178
[preis] => 39.90
[einheit] => 1
[produktbeschreibung] => 5 kg (1kg = 7,98 €)
[optionen] => 3 )
)
Schlußendlich möchte ich folgende Ausgabe haben:
<table>
<tr>
<td>Produktbeschreibung</td>
<td>Einheiten</td>
<td>Preis</td>
</tr>
<tr>
<td>1 kg (1kg = 13,90 €)</td>
<td>1</td>
<td>13.90</td>
</tr>
<tr>
<td></td>
<td>5</td>
<td>12.90</td>
</tr>
<tr>
<td>Produktbeschreibung</td>
<td>Einheiten</td>
<td>Preis</td>
</tr>
<tr>
<td>2 kg (1kg = 9,95 €)</td>
<td>1</td>
<td>19.90</td>
</tr>
<tr>
<td>Produktbeschreibung</td>
<td>Einheiten</td>
<td>Preis</td>
</tr>
<tr>
<td>5 kg (1kg = 7,98 €)</td>
<td>1</td>
<td>39.90</td>
</tr>
</table>
Das o.g. array_multisort()-Beispiel ist jetzt die Kombination von SORT_DESC / SORT_ASC die dem was ich brauche am nächsten kommt. Aber wirklich funktionieren tut es nicht wie man sieht. Was mache ich da falsch?
Gruß,
Andreas