我有一個程式,我在輸入處接收一個字串并將其逐行存盤在欄位中,例如 list [0] = 'Roll 5CZK' 等。我還有一個函式可以從字串中找到值(數,此處為 5)。我怎樣才能對這個欄位進行排序。我不想用二維陣列解決它
$string='Rohlík 5K?
CZK400 Kní?ka
Pivo 42,-
Houska 4 K?';
$list = explode(PHP_EOL, $string);
getPrice($list[1]); // => 400
getPrice($list[2]; // => 42
uj5u.com熱心網友回復:
注釋中使用 usort 的解決方案,只有 $a 和 $b 交換以實作降序排序。
$arr = array (
0 => "Rohlík 5K?",
1 => "CZK400 Kní?ka",
2 => "Pivo 42,-",
3 => "Houska 4 K?",
);
/*
* This is a greatly simplified implementation of getPrice()
* to make the code reproducible
*/
function getPrice($str){
return preg_replace('~[^\d]~u','',$str);
}
//Sorting
usort($arr,function($a,$b){
return getPrice($b) <=> getPrice($a);
});
// Test Output
var_export($arr);
輸出:
array (
0 => 'CZK400 Kní?ka',
1 => 'Pivo 42,-',
2 => 'Rohlík 5K?',
3 => 'Houska 4 K?',
)
uj5u.com熱心網友回復:
foreach ($list as $v) $arr1[$v]=getPrice($v);
rsort($arr1);
......你完成了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/312297.html
