我想根据CRITICAL
,WARNING
,INFO
子字符串对php数组进行排序,然后CRITICAL
,WARNING
,INFO
子数组应该再次排序,其中每行字符串中包含的时间戳值按acsending顺序排列。基本上,在最后我需要数组进行排序与CRITICAL
第一次与时间戳排序,然后WARNING
,然后INFO
等。
$keys = array_keys($eventinfo["message"]);
for ($i = 0; $i < count($keys); $i++) {
$key = ($keys[$i]);
$perNode = $eventinfo["message"][$key];
$arrTmp = explode("\n", $perNode);
$t = count($arrTmp);
$tmp = 0;
while ($t) {
$t--;
if ($arrTmp[$tmp] != "") {
$cumltvArray[] = "<a href='#'>" . $key. "</a> : </br>".$arrTmp[$tmp];
}
$tmp++;
}
}
$result_str = events_print($cumltvArray);
// $cumltvArray is the one which I am passing to events_print
2条答案
按热度按时间vaqhlq811#
首先,定义一个函数,将行的紧急程度转换为数字。
然后,假设数组的每个元素都包含文件的一行,您需要应用装饰器来保持排序稳定;请参阅我较早前就这个问题所作的答复:
应用装饰器后,对数组进行排序;我正在使用一个稳定的比较助手:
最后,取消修饰数组以生成最终结果:
u0njafvf2#
在排序顺序上变得至关重要
但这只能排序,如果每一行都没有空格,我的意思是单个单词,。
还有其他好奇的解决方案吗?