当前位置:首页 > 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中实现组合排序的不同方法,可以根据实际需求选择合适的实现方式。

php实现组合排序 代码实现

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

相关文章

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

vue实现代码

vue实现代码

以下是Vue实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ me…

vue实现弹窗代码

vue实现弹窗代码

Vue 弹窗实现方法 方法一:使用组件与v-if控制显示 创建一个独立的弹窗组件(如Modal.vue),通过父组件的v-if或v-show控制显隐: <!-- Modal.vue --…

代码雨实现vue

代码雨实现vue

实现代码雨效果(Vue版) 使用Vue实现代码雨效果可以通过Canvas绘制结合动画帧实现。以下是完整实现方案: 核心代码结构 <template> <div class="c…

vue分页代码实现

vue分页代码实现

Vue 分页代码实现 在 Vue 中实现分页功能通常需要结合后端 API 返回的数据和前端的分页组件。以下是一个完整的实现示例,包括分页组件的封装和与后端数据的交互。 分页组件封装 创建一个…

vue 单选组合 实现

vue 单选组合 实现

Vue 单选组合实现 在 Vue 中实现单选组合可以通过多种方式完成,常见的方法包括使用原生 HTML 的 <input type="radio"> 结合 Vue 的数据绑定,或使用第三方…