PHP Array -- PHP 排序 -- 反复排序 (Toggle Sort)

本文介绍了一种改进的冒泡排序算法——ToggleSort,并通过PHP代码实现了该算法。此算法适用于基本有序的数据集,如Web服务器日志文件的排序,相较于传统排序方法,ToggleSort能够更高效地完成排序任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 PHP排序函数大多数都是用"快速排序"算法,因为这是通用的排序算法,大多数情况下,即使不是最优,其使用时间也比较少.

但某些情况下,我们对数据结构比较熟悉,就可以使用效率更高的算法来进行工作。

比如,对Web服务器日志文件内容 的排序。这些文件是基本有序的,传统排序方法会遍历这个数组的数据,效率十分低下。于是我们采用一个改进的冒泡算法-- 反复排序 Toggle Sort

 

// 来自 PHP5 in Practice  (U.S.)Elliott III & Jonathan D.Eisenhamer

 

``` while ($WSSlider = mysqli_fetch_assoc($result)) { // XSS 防護處理 $wssID = htmlspecialchars($WSSlider['WSSID']); $imagePath = htmlspecialchars($_SESSION['SchWeb'] . '/' . $WSSlider['WSSImage']); // 按鈕狀態邏輯 $lockBtn = $WSSlider['WSSDefault'] ? "<button type='button' name='lock' id='$wssID' class='btn btn-danger btn-sm lock'><i class='fa-solid fa-lock'></i></button>" : "<button type='button' name='unlock' id='$wssID' class='btn btn-success btn-sm unlock'><i class='fa-solid fa-unlock'></i></button>"; $toggleBtn = $WSSlider['WSSEnable'] ? "<button type='button' name='enable' id='$wssID' class='btn btn-success btn-sm enable'><i class='fa-solid fa-toggle-on'></i></button>" : "<button type='button' name='disable' id='$wssID' class='btn btn-danger btn-sm disable'><i class='fa-solid fa-toggle-off'></i></button>"; // 排序按鈕邏輯(需根據實際業務邏輯調整) $order = (int)$WSSlider['WSSOrder']; $upDisabled = $order == 1 ? 'disabled' : ''; $downDisabled = $order == $totalRecords ? 'disabled' : ''; $orderButtons = "<button type='button' $upDisabled name='up' id='$wssID' sort='$order' class='btn btn-success btn-sm'>" . "<i class='fa-solid fa-up-long'></i></button> " . "<button type='button' $downDisabled name='down' id='$wssID' sort='$order' class='btn btn-success btn-sm'>" . "<i class='fa-solid fa-down-long'></i></button> "; // 操作按鈕 $actionButtons = $lockBtn . ' ' . $toggleBtn . ' ' . $orderButtons . "<button type='button' name='update' id='$wssID' class='btn btn-warning btn-sm update'>" . "<i class='fa-solid fa-pen-to-square'></i></button> " . "<button type='button' name='delete' id='$wssID' class='btn btn-danger btn-sm delete'>" . "<i class='fa-solid fa-trash'></i></button>"; $wssliderRows = array( htmlspecialchars($WSSlider['WSSTitle']), "<img src='$imagePath' width='350px'>", htmlspecialchars($WSSlider['WSSStartDate']), htmlspecialchars($WSSlider['WSSEndDate']), htmlspecialchars($WSSlider['WSSCreator']), htmlspecialchars($WSSlider['WSSEditor']), $actionButtons ); $wssliderData[] = $wssliderRows; }```想在$lockBtn = $WSSlider['WSSDefault']檢查只可一個存在, 如有存在, 其餘都會變成disable不可按
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值