我有一个数组名为 “test”:我怎样才能基于它的键排序TCL关联数组?
key -> value
a 4
f 5
c 3
b 0
d 9
而且我想作为对数组进行排序:
a 4
b 0
c 3
d 9
f 5
我试着使用:
set sorted_array [lsort [array names test]]
但这只能返回我:abcdf 我怎样才能得到整个数组的值(也按照键排序)?
我能够得到排序结果。现在,我试图把它作为一个名为“sorted_array”使用代码排序后的数组给出如下:
foreach idx [lsort [array names test]] {
append result "$idx $test($idx)"
set sorted_array($idx) $test($idx)
}
现在,当我打印阵列“sorted_array”使用:
foreach index [array names sorted_array] {
puts "sorted_array($index): $sorted_array($index)"
}
但是,我得到相同数组作为“测试”,而不是一个排序的。
的'parray' PROC做到这一点:在交互式会话,做'粒子阵列env'(加载PROC),然后'信息身体parray' –
Tcl数组不记得按“广告订单”(字典做,但它们在旧版本的Tcl中不可用)。此外,它是一个关联数组,而关联数组没有内在排序(它是一组键 - 值对)。排序只在你想输出数组的时候有意义, –