Movilizer:在不更改数组键的情况下对数据容器进行排序

Posted

技术标签:

【中文标题】Movilizer:在不更改数组键的情况下对数据容器进行排序【英文标题】:Movilizer: Sorting Data Container without changing Array keys 【发布时间】:2018-01-24 06:50:15 【问题描述】:

我有一个数据容器,里面有 9 个值。我想要的数据容器到达时的顺序如下:

<entry name="userId">
   <valstr>u517775</valstr>
 </entry>
 <entry name="beginTime">
   <valstr>2017-08-11 - 09:44:00</valstr>
 </entry>
 <entry name="endTime">
   <valstr>2017-08-11 - 09:44:15</valstr>
 </entry>
 <entry name="mailOffice">
   <valstr>insert function here</valstr>
 </entry>
 <entry name="eersteScore">
   <valstr>25.0</valstr>
 </entry>
 <entry name="verbetering">
   <valstr>-20.0</valstr>
 </entry>
 <entry name="procentueleScore">
   <valstr>5.0</valstr>
 </entry>
 <entry name="aantalVragen">
   <valstr>20</valstr>
 </entry>
 <entry name="pogingen">
   <valstr>2.0</valstr>
 </entry>

但不知何故,它总是以相同的顺序结束,但不是我想要的。我知道这是因为 Movilizer 中的数组实际上是一个哈希图,解决它的一种方法是使用 0-8 的键而不是字符串。但是有没有一种方法可以在不更改密钥的情况下实现这一点?

我的 MEL 代码:

data['userId'] = $global: userID;
data['beginTime'] = $local: beginTime;
data['endTime'] = call($global: getDateTime)();
data['mailOffice'] = "insert function here";
data['eersteScore'] = $local: firstScore;   
data['verbetering'] = verbetering;
data['procentueleScore'] = procentScore;
data['aantalVragen'] = $local: aantalVragen;
data['pogingen']= $local: pogingen;
writeContainer(concat(data['userId'], "-", strReplace(data['endTime'], " - ", "-")), data, 0);  

提前致谢!

【问题讨论】:

【参考方案1】:

我相信您在系统设计的其他方面需要帮助。哈希表本身的元素顺序和 xml 响应中条目元素的顺序不应该有任何影响。也许这将有助于打开另一个问题,在其中描述您想要实现的目标以接收有关最佳实践方法的输入

【讨论】:

我真的不知道。信息到达的后端不是我的域。接收数据的人只是要求我制作那个确切的容器。但如果不可能,我会让他们知道。

以上是关于Movilizer:在不更改数组键的情况下对数据容器进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改特定列的情况下对数据框中的数据进行重新采样?

如何在不更改特定列的情况下对数据框中的数据进行重新采样?

在不更改索引的情况下重新排序数组

在不循环 c++ 的情况下对 2D 数组进行分区

如何在不改变原始数组的情况下对数组进行排序?

如何在不更改其签名信息的情况下对 apk 进行逆向工程