簡體   English   中英

PHP數組在foreach中排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM