要按键创建自然反向排序,请使用以下函数
<?php
function natkrsort($array)
{
$keys = array_keys($array);
natsort($keys);
foreach ($keys as $k)
{
$new_array[$k] = $array[$k];
}
$new_array = array_reverse($new_array, true);
return $new_array;
}
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
krsort — 按键降序排序数组
按键降序对 array
进行就地排序。
注意:
如果两个成员比较相等,则它们保留其原始顺序。在 PHP 8.0.0 之前,它们在已排序数组中的相对顺序是未定义的。
注意:
将数组的内部指针重置为第一个元素。
array
输入数组。
flags
可选的第二个参数 flags
可用于使用以下值修改排序行为
排序类型标志
SORT_REGULAR
- 按正常方式比较项目;详细信息在 比较运算符 部分中描述
SORT_NUMERIC
- 按数字比较项目
SORT_STRING
- 按字符串比较项目
SORT_LOCALE_STRING
- 按字符串比较项目,基于当前区域设置。它使用区域设置,可以使用 setlocale() 更改
SORT_NATURAL
- 使用“自然排序”按字符串比较项目,类似于 natsort()
SORT_FLAG_CASE
- 可以与 SORT_STRING
或 SORT_NATURAL
组合(按位或)以不区分大小写地排序字符串
始终返回 true
。
示例 #1 krsort() 示例
<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
上面的示例将输出
d = lemon c = apple b = banana a = orange
要按键创建自然反向排序,请使用以下函数
<?php
function natkrsort($array)
{
$keys = array_keys($array);
natsort($keys);
foreach ($keys as $k)
{
$new_array[$k] = $array[$k];
}
$new_array = array_reverse($new_array, true);
return $new_array;
}
?>
最佳交易排序
这是一个函数,它将对具有整数键(重量)和浮点值(成本)的数组进行排序,并删除“糟糕的交易” - 比具有大于或等于重量的其他条目成本更高的条目。
输入:未排序的重量/成本对数组
输出:无
function BEST_DEALS($myarray)
{ // 最重的成本最低
// ? Peter Kionga-Kamau, http://www.pmkmedia.com
// 感谢 Nafeh 的反转技巧
// 免费无限制使用。
krsort($myarray, SORT_NUMERIC);
while(list($weight, $cost) = each($myarray))
{ // 删除糟糕的交易,保留最佳交易
if(!$lastweight)
{
$lastweight=$weight;
$lastcost = $cost;
}
else if($cost >= $lastcost) unset($myarray[$weight]);
else
{
$lastweight=$weight;
$lastcost = $cost;
}
}
ksort($myarray);
}