创建一个关联函数

时间:2018-03-28 15:34:03

标签: php

功能: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而不是排序的关联数组。

2 个答案:

答案 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函数都会对通过引用的数组进行操作,并返回truefalse

所以:

return sort($array);

返回函数调用的结果,但不返回修改后的$array

您必须明确返回数组

function sortFunc($array) {
    sort($array);
    return $array;
}