我想知道是否有一种方法/方法,我可以更快地排序这些类型的数组(即使它的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()函数