-1

Ich würde gerne wissen, ob es eine Möglichkeit gibt,/Methode ich könnte diese Art von Array schneller sortieren (auch wenn es 0,05 schneller). Array ist in der Regel 700 kb GrößePHP Schneller assoziative Array-Sortierung

$price_posi = array(); 

$i = 0; 
foreach ($results["items"] as $one_item) 
{ 
    if($a == 1) 
    { 
     $price_posi[i] = $one_item["price"]["paxgroup"][0]["cost"] + $one_item["price"]["paxgroup"][0]["othertotal"]; 
    } 
    else if($b == 1) 
    { 
     $price_posi[i] = $one_item["price"]["paxgroup"][0]["cost"]; 
    } 
    else if($c == 1) 
    { 
     $price_posi[i] = $one_item["price"]["paxgroup"][0]["wholesale"] + $one_item["price"]["paxgroup"][0]["othertotal"]; 
    } 
    else if($d == 1) 
    { 
     $price_posi[i] = $one_item["price"]["paxgroup"][0]["wholesale"]; 
    } 

    // Other actions on $results .... 

    $i++; 
} 

asort ($price_posi); 

$sorted_results = array(); 
$i = 0; 

foreach ($price_posi as $key => $price) 
{ 
    $sorted_results["items"][$i] = $results["items"][$key]; 
    $i++; 
} 

$sorted_results["segments"] = $results["segments"]; 

$results = $sorted_results; 

Ich weiß asort ist schon sehr schnell, aber ich habe eine Schleife durch meine Array 2 mal der Lage sein, asort zu verwenden, da mein Array ein mehrdimensionales assoziatives Array ist.

+0

Geben Sie uns einige Beispieldaten –

+0

Warum müssen Sie zweimal durchlaufen? Und wenn die Daten von einer Datenbank kommen, warum lassen Sie das nicht Ihre Daten bestellen? –

+0

@MarkBaker die Daten kommen nicht aus einer Datenbank, erhalten wir XML von einer API, die wir in JSON konvertieren – user2942945

Antwort

0

Ich denke, es ist eine schlechte Idee, in jeder Iteration verglichen zu haben.

Sie sollten verschiedene foreach in verschiedene if/elsif-Anweisungen einfügen.

Auch können Sie array_map() Funktion verwenden.

Verwandte Themen