Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建关联函数_Php - Fatal编程技术网

Php 创建关联函数

Php 创建关联函数,php,Php,功能:sortFunc 参数:关联数组 给定一个关联数组,使用全名作为键,年薪作为值;在表格格式中,按递增顺序(从最低工资到最高工资)打印每个人的姓名和相应的工资 我这样做: $salary = array( "Peter" => "37000", "Ben" => "35000", "Joe" => "43000" ); asort($salary); print_r ($salary); 输出我想要的。 当我尝试将其放入函数中时: function

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

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;
}