PHP 板


LINE

看板 PHP  RSS
※ 引述《dowbatw (Dowbatw)》之铭言: : 如蒙解惑,不胜感激! 你的资料应该很难纯以排序来处理, 因为元素彼此之间不是只有次序,还有从属关系, 所谓一般性的排序指的是「拿起两个元素依某个规则判断次序,然後调整其位置」 如果你的资料无法在两个元素之间有绝对性的次序判断, 就不太有办法纯以排序来解。 回归正题,我写了一个相邻排序的解,可以解你给的资料 (因为你的资料正好是相邻可排序的特例) 比较函式: function cmpare ($a, $b) { $ab = isset ($a['belong']); $bb = isset ($b['belong']); // (! $ab && $bb) || (! $ab && ! $bb) if (! $ab) return 0; else if ($ab && ! $bb) return 1; // $ab && $bb else { if ($a['belong'] == $b['belong']) return $a['order'] < $b['order'] ? 0 : 1; else if ($b['label'] == $a['belong']) return 1; return 0; } } 假设你给的资料阵列变数是 $set,以 compare 做排序: $set = array_values ($set); $size = count ($set); $new = Array (); for ($i=0; $i<$size; $i++) { if (isset ($set[$i + 1]) && cmpare ($set[$i], $set[$i + 1])) { $tmp = $set[$i]; $set[$i] = $set[$i + 1]; $set[$i + 1] = $tmp; } $new[$set[$i]['label']] = $set[$i]; } 输出: var_dump ($new); 如我一开始所说,这是特例解, 假设你的资料不在此「相邻可排序」的特例范围内就要另外再做处理了… --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.249.65
1F:→ gpmm:补充一下,这也是为什麽不能直接 uasort ($set, 'compare') 01/01 02:19
2F:推 dowbatw:谢谢前辈辛劳,经过我shuffle试验,似乎没办法一开始就把 01/01 13:41
3F:→ dowbatw:「最高层级」者移到最左边,可能是因为用bubblesort结果? 01/01 13:42
4F:→ dowbatw:我再试试看 01/01 13:42
5F:→ dowbatw:      更正:左半部 01/01 14:33







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP