PHP-按键和值对数组排序
您好,如何按键和值对数组进行排序。。。所以如果用户输入这个值PHP-按键和值对数组排序,php,arrays,sorting,Php,Arrays,Sorting,您好,如何按键和值对数组进行排序。。。所以如果用户输入这个值 $input = array(0,1,0,2,0); 那么结果应该是这样的,因为它们是相同的输入,它们也应该维护它们的键 Array ( [0] => 0 [2] => 0 [4] => 0 [1] => 1 [3] => 2 ) 不是这样的。。。关键是混乱的,我真的是关键的工作,我的项目的FCFS调度 Array ( [4] => 0 [
$input = array(0,1,0,2,0);
那么结果应该是这样的,因为它们是相同的输入,它们也应该维护它们的键
Array
(
[0] => 0
[2] => 0
[4] => 0
[1] => 1
[3] => 2
)
不是这样的。。。关键是混乱的,我真的是关键的工作,我的项目的FCFS调度
Array
(
[4] => 0
[0] => 0
[2] => 0
[1] => 1
[3] => 2
)
顺便说一句,我用了一个。有人帮我解决这个问题吗?函数cmp($a,$b)
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(0,1,0,2,0);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo " $value\n";
}
{
如果($a=$b){
返回0;
}
回报率($a<$b)?-1:1;
}
$a=数组(0,1,0,2,0);
usort($a,“cmp”);
foreach($a作为$key=>$value){
回显“$value\n”;
}
稳定排序在这里会有所帮助。但是php自4.1以来没有任何稳定的排序函数。
但是您可以使用uksort+闭包
$input = array(0,1,0,2,0);
$cmp = function($a, $b) use($input){
if($input[$a] > $input[$b]){return 1;}
elseif($input[$a] < $input[$b]){return -1;}
elseif($a>$b){return 1;}
elseif($a<$b){return -1;}
return 0;
};
uksort($input, $cmp);
print_r($input);
简单使用
排序功能
$input = array(0,1,0,2,0);
sort($input);
Result:-
Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 1
[4] => 2
)
此链接可能有助于您复制等待。。下标0始终是第一个键。@VandanaPareek没有这些工作…@JeffLouie:你能解释一下你是如何得到第一个输出的吗?我看不出您的密钥是如何排序的。或者您可以使用sort($input);而且
$input = array(0,1,0,2,0);
sort($input);
Result:-
Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 1
[4] => 2
)