当前位置:首页 > PHP

php实现组合排序 代码实现

2026-02-15 03:31:24PHP

php实现组合排序 代码实现

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实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ mes…

vue代码框实现

vue代码框实现

Vue 代码框实现方法 在 Vue 中实现代码框功能通常需要结合语法高亮库或 UI 组件库。以下是几种常见实现方式: 使用第三方库 Prism.js 安装 Prism.js 及相关依赖: npm…

vue代码实现管理

vue代码实现管理

Vue.js 管理后台实现方案 使用 Vue.js 构建管理后台系统通常涉及路由、状态管理、UI 组件库等核心模块。以下是关键实现方案: 基础框架搭建 安装 Vue CLI 创建项目: npm i…

vue代码怎么实现拼音

vue代码怎么实现拼音

实现拼音功能的方法 在Vue中实现拼音功能,可以通过拼音转换库将中文转换为拼音。以下是具体实现步骤: 安装拼音转换库 推荐使用pinyin或v-chinese2pinyin库。通过npm或yarn安…

vue拖拽实现低代码

vue拖拽实现低代码

Vue拖拽实现低代码方案 基于现成库的方案(推荐) 使用成熟的拖拽库可以快速实现低代码功能,例如: vuedraggable:基于Sortable.js的Vue拖拽组件 vue-draggable-…

vue实现代码实例

vue实现代码实例

以下是一个基于 Vue 3 的完整代码实例,包含核心功能实现和常见开发场景的示例: 基础组件示例 <template> <div> <h1>{{ ti…