Php 创建关联函数
功能:sortFuncPhp 创建关联函数,php,Php,功能:sortFunc 参数:关联数组 给定一个关联数组,使用全名作为键,年薪作为值;在表格格式中,按递增顺序(从最低工资到最高工资)打印每个人的姓名和相应的工资 我这样做: $salary = array( "Peter" => "37000", "Ben" => "35000", "Joe" => "43000" ); asort($salary); print_r ($salary); 输出我想要的。 当我尝试将其放入函数中时: function
参数:关联数组
给定一个关联数组,使用全名作为键,年薪作为值;在表格格式中,按递增顺序(从最低工资到最高工资)打印每个人的姓名和相应的工资 我这样做:
$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而不是已排序的关联数组。
asort
函数返回bool,请参见PHP文档:,在您的例子中,返回的是true
,它被转换为1
。您必须返回已转换的数组,因此代码:
function sortFunc($array) {
asort($array);
return $array;
}
$salary = array("Peter" => "37", "Ben" => "35", "Joe" => "43");
print_r(sortFunc($salary));
asort
对作为参数传递的数组重新排序,并更改数组,因此,在执行asort
之后,您将在作为参数传递的数组中获得有序数组根据手册,所有*排序
函数对通过引用传递的数组进行操作,并返回真
或假
因此:
返回函数调用的结果,但不返回修改后的$array
必须显式返回数组:
function sortFunc($array) {
sort($array);
return $array;
}
(和其他*sort
函数)的返回值是布尔值,如下所述。您的函数不等同于您的独立代码。
function sortFunc($array) {
sort($array);
return $array;
}