当前位置:首页 > PHP

php实现组合排序 代码实现

2026-02-15 03:31:24PHP

PHP实现组合排序代码示例

组合排序通常指按照多个字段或条件对数组进行排序。以下是几种常见的实现方式:

php实现组合排序 代码实现

使用usort()自定义排序函数

$data = [
    ['name' => 'John', 'age' => 28, 'score' => 85],
    ['name' => 'Alice', 'age' => 25, 'score' => 95],
    ['name' => 'Bob', 'age' => 28, 'score' => 78]
];

usort($data, function($a, $b) {
    // 先按age升序,再按score降序
    if ($a['age'] != $b['age']) {
        return $a['age'] - $b['age'];
    }
    return $b['score'] - $a['score'];
});

print_r($data);

使用array_multisort()实现多列排序

$data = [
    ['name' => 'John', 'age' => 28, 'score' => 85],
    ['name' => 'Alice', 'age' => 25, 'score' => 95],
    ['name' => 'Bob', 'age' => 28, 'score' => 78]
];

// 提取各列用于排序
$ages = array_column($data, 'age');
$scores = array_column($data, 'score');

// 先按age升序,再按score降序
array_multisort($ages, SORT_ASC, $scores, SORT_DESC, $data);

print_r($data);

对象数组的多属性排序

class User {
    public $name;
    public $age;
    public $score;

    public function __construct($name, $age, $score) {
        $this->name = $name;
        $this->age = $age;
        $this->score = $score;
    }
}

$users = [
    new User('John', 28, 85),
    new User('Alice', 25, 95),
    new User('Bob', 28, 78)
];

usort($users, function($a, $b) {
    // 先按age升序,再按name升序
    if ($a->age != $b->age) {
        return $a->age - $b->age;
    }
    return strcmp($a->name, $b->name);
});

foreach ($users as $user) {
    echo "{$user->name}, {$user->age}, {$user->score}\n";
}

更复杂的组合排序逻辑

$products = [
    ['name' => 'Laptop', 'price' => 999, 'stock' => 5],
    ['name' => 'Mouse', 'price' => 25, 'stock' => 0],
    ['name' => 'Keyboard', 'price' => 45, 'stock' => 10]
];

usort($products, function($a, $b) {
    // 优先按库存状态排序(有库存的在前)
    if ($a['stock'] > 0 && $b['stock'] <= 0) {
        return -1;
    }
    if ($a['stock'] <= 0 && $b['stock'] > 0) {
        return 1;
    }
    // 其次按价格升序
    return $a['price'] - $b['price'];
});

print_r($products);

这些示例展示了PHP中实现组合排序的不同方法,可以根据实际需求选择合适的实现方式。

标签: 组合代码
分享给朋友:

相关文章

vue本地查询代码实现

vue本地查询代码实现

Vue 本地查询代码实现 在Vue中实现本地查询功能,可以通过以下几种方式实现,具体取决于数据源和查询需求。 使用计算属性进行本地查询 计算属性是Vue中处理响应式数据查询的高效方式,适合基于现有数…

vue怎么实现文本代码实现

vue怎么实现文本代码实现

Vue 实现文本代码展示的方法 在 Vue 中展示代码文本通常需要结合语法高亮和格式化的功能,以下是几种常见的实现方式: 使用 <pre> 和 <code> 标签 通过 HT…

vue实现网站代码

vue实现网站代码

Vue 实现网站代码的基本步骤 安装 Vue.js 通过 npm 或 CDN 引入 Vue.js。使用 npm 安装:npm install vue。或者直接在 HTML 文件中引入 Vue CDN:…

vue联动实现代码

vue联动实现代码

Vue 联动实现代码 Vue 中实现联动效果通常涉及父子组件通信、状态管理或动态数据绑定。以下是几种常见的联动实现方式: 父子组件通信实现联动 通过 props 和 $emit 实现父子组件数据联动…

如何预览react代码

如何预览react代码

预览 React 代码的方法 本地开发环境预览 安装 Node.js 和 npm/yarn,通过 create-react-app 或 Vite 创建项目后,运行开发服务器(如 npm start)。…

css制作代码

css制作代码

CSS 制作代码的基本方法 CSS(层叠样式表)用于控制网页的样式和布局。以下是一些常见的 CSS 制作代码的方法和技巧。 基础样式设置 通过选择器为 HTML 元素设置样式。例如,修改段落文字颜色…