更快的关联数组排序



我想知道是否有一种方法/方法,我可以更快地排序这些类型的数组(即使它的0.05更快)。数组一般为700kb大小

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

我知道sort已经非常快了,但我必须循环我的数组2次才能使用sort,因为我的数组是一个多维关联数组

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

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

也可以使用array_map()函数

相关内容

  • 没有找到相关文章