-1

我想知道是否有方法/方法可以更快地对这些类型的数组进行排序(即使它快0.05)。阵列一般都是700 KB大小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已经是非常快,但我必须遍历数组我2次能够使用ASORT因为我的数组是一个多维关联数组。

+0

给我们一些样品数据 –

+0

为什么你需要循环两次?如果数据来自数据库,那么为什么不让这些数据排序呢? –

+0

@MarkBaker数据不是来自数据库,我们从我们转换成json的API接收xml – user2942945

回答

0

我认为在每次迭代中进行比较是个坏主意。

你应该把不同的foreach放到不同的if/elseif语句中。

也可以使用array_map()函数。