-1

방법이 있는지 알고 싶습니다. 이러한 종류의 배열을 더 빨리 정렬 할 수 있는지 알고 싶습니다 (0.05보다 빠름). 배열은 일반적으로 7백킬로바이트 크기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 사용할 수 있도록 내 배열을 통해 루프를 두 번 있습니다.

+0

샘플 데이터 제공 –

+0

왜 두 번 반복해야합니까? 그리고 데이터가 데이터베이스에서 오는 경우 왜 데이터를 주문하지 않습니까? –

+0

@MarkBaker 데이터가 데이터베이스에서 가져 오지 않는다면 json으로 변환 한 API로부터 xml을 받는다 – user2942945

답변

0

각 반복에서 비교하는 것은 좋지 않은 생각입니다.

다른 foreach를 다른 if/elseif 문에 넣어야합니다.

array_map() 기능을 사용할 수도 있습니다.