功能:sortFunc
参数:关联数组
给定一个关联数组,使用全名作为键,年薪作为值;以表格形式,按递增顺序(从最低工资到最高工资)打印出每个人的姓名和相应工资。
我这样做了:
$salary = array(
"Peter" => "37000",
"Ben" => "35000",
"Joe" => "43000"
);
asort($salary);
print_r ($salary);
输出我想要的东西。
当我尝试将它放在一个函数中时:
function sortFunc($array) {
return sort($array);
}
print_r (sortFunc(array("Peter" => "37", "Ben" => "35", "Joe" => "43")));
输出是1.有人可以告诉我为什么输出是1而不是排序的关联数组。
答案 0 :(得分:1)
asort
函数返回bool,请参阅PHP doc:https://secure.php.net/manual/en/function.asort.php,在您的情况下,返回true
,转换为1
。你必须返回转换的数组,所以代码:
function sortFunc($array) {
asort($array);
return $array;
}
$salary = array("Peter" => "37", "Ben" => "35", "Joe" => "43");
print_r(sortFunc($salary));
asort
对作为参数传递的数组进行重新排序并更改数组,因此在asort
之后,您获得了作为参数传递的数组中的有序数组
答案 1 :(得分:1)
根据手册,所有*sort
函数都会对通过引用的数组进行操作,并返回true
或false
。
所以:
return sort($array);
返回函数调用的结果,但不返回修改后的$array
。
您必须明确返回数组 :
function sortFunc($array) {
sort($array);
return $array;
}