[英]php array sort in foreach
我試圖訂購一個由foreach循環產生的數組,這是我的代碼:
$lowestvar = array();
foreach ($variations as $variation){
$lowestvar[] = $variation['price_html'];
}
然后我像這樣使用array_multisort:
array_multisort($lowestvar, SORT_ASC);
print_r($lowestvar);
這適用於第一個循環項目,其輸出為:
Array ( [0] => £10.00 [1] => £15.00 )
但是循環中的第二個數組如下所示:
Array ( [0] => £10.00 [1] => £5.00 )
對我要去哪里有任何想法嗎?
您正在對STRINGS進行排序,這意味着10 < 5
是正確的。 請記住,字符串排序是逐字符進行的,而不是按“整個值”進行的。
您可以像下面的示例一樣使用usort()
function cmp($a1, $b1)
{
$a=str_replace('£','',$a1);
$b=str_replace('£','',$b1);
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array('£10.00','£5.00');
usort($a, "cmp");
print_r($a);
產量
Array
(
[0] => £5.00
[1] => £10.00
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.