You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将关联数组薪资升序逻辑封装为sortFunc函数?

实现 sortFunc 函数的完整方案

没问题,我来帮你把这段测试代码封装成符合需求的函数,还能输出格式整齐的表格~

完整函数代码

function sortFunc($salaryArray) {
    // 先复制原数组,避免排序操作修改传入的原数组
    $sortedSalaries = $salaryArray;
    
    // 按薪资数值升序排序(保留键名,也就是员工姓名)
    // 加上SORT_NUMERIC确保按数字大小排序,而不是字符串字典序
    asort($sortedSalaries, SORT_NUMERIC);
    
    // 输出HTML格式的表格
    echo "<table border='1'>
            <tr>
                <th>姓名</th>
                <th>年薪</th>
            </tr>";
    
    // 遍历排序后的数组,逐行输出内容
    foreach ($sortedSalaries as $name => $salary) {
        echo "<tr>
                <td>$name</td>
                <td>$salary</td>
              </tr>";
    }
    
    echo "</table>";
}

测试调用示例

// 你的测试数组
$salary = array( "Peter" => "37000", "Ben" => "35000", "Joe" => "43000" );
// 调用函数
sortFunc($salary);

关键细节说明

  • 复制数组:用$sortedSalaries = $salaryArray复制原数组,是因为asort是原地排序,会直接修改传入的数组。如果不复制,原数组的顺序也会被改变,这可能不是你想要的。
  • SORT_NUMERIC参数:你的薪资是字符串类型的数字,不加这个参数的话,会按字符串字典序排序(比如"100000"会被排在"20000"前面),加上后会按数字大小正确排序。
  • 纯文本表格选项:如果你不需要HTML格式,想要纯文本表格,可以把输出部分改成这样:
    // 纯文本表格示例
    echo "姓名\t年薪\n";
    echo "----------------\n";
    foreach ($sortedSalaries as $name => $salary) {
        echo "$name\t$salary\n";
    }
    

内容的提问来源于stack exchange,提问作者Huey Griffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:34:59