我有两个数组
Array 1 : $agents = Array('abc','xyz','pqr');
Array 2 : $tot_calls = Array ('10','5','20');
这里的数组2分别反映了$agents数组中座席的总调用次数。例如座席abc打了10次电话,座席xyz打了5次电话,以此类推。
我希望生成的数组显示按呼叫次数排序(降序)的座席
。e $result = Array('pqr','abc','xyz');
//这里的结果数组是按照调用次数的最大值排序的
在这种特殊情况下,您可以将array_combine()
与krsort()
结合使用。考虑这个例子:
$agents = Array('abc','xyz','pqr');
$tot_calls = Array ('10','5','20');
// calls become the keys and agents become the values
$sorted_values = array_combine($tot_calls, $agents);
krsort($sorted_values); // sort them by keys
print_r($sorted_values);
// maybe if you want to clear the keys
$sorted_values = array_values($sorted_values);
样本小提琴编辑:
或者,@Satish对此提出了一个很好的观点。为了避免相同的键问题(好吧,至少在没有代理名称冲突的情况下)。你可以用这个来代替(正好相反):
$agents = Array('abc','xyz','pqr');
$tot_calls = Array ('10','5','20');
// agents become keys and calls become values
$sorted_values = array_combine($agents, $tot_calls);
arsort($sorted_values);
$sorted_values = array_keys($sorted_values);
print_r($sorted_values);
样本小提琴try this
$agents = Array('abc','xyz','pqr');
$tot_calls = Array (10, 5, 20);
arsort($tot_calls);
foreach($tot_calls as $key=>$val)
{
$arr_agents[] = $agents[$key];
}
print_r($arr_agents);
输出:
Array
(
[0] => pqr
[1] => abc
[2] => xyz
)
DEMO-2: with
$agents = Array('abc','xyz','pqr','lmn');
$tot_calls = Array ('10', '5', '20', '5');
OUTPUT-2:
Array
(
[0] => pqr
[1] => abc
[2] => lmn
[3] => xyz
)