-1

私は方法/方法がある場合、私はこれらの種類の配列を速くソートすることができます知っていると思います(その0.05速い場合でも)。アレイは、一般的に700キロバイトのサイズPHP高速連想配列の並べ替え

$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; 

ある私はASORTはすでに本当に速いです知っているが、私は私の配列が多次元連想配列であるため、ASORT使用できるように、私の配列をループに2回を持っています。

+0

サンプルデータを提供 –

+0

なぜ2回ループする必要がありますか?また、データがデータベースから取得されている場合は、そのデータを注文することをおすすめします。 –

+0

@ MarkBakerデータがデータベースから来ていないので、jsonに変換したAPIからxmlを受け取ります – user2942945

答えて

0

各繰り返しで比較するのは悪い考えです。

異なるforeachを異なるif/elseifステートメントに入れる必要があります。

array_map()機能を使用することもできます。