hashInvert

構文
hashInvert( Var hash[] )
引数
hash
キーと値を入れ替える連想配列(参照引数)
戻値

プログラム

//////////////////////////////////////////////////
// 【引数】
//   hash : キーと値を入れ替える連想配列(参照引数) 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE hashInvert(Var hash[])
	HASHTBL tmp
	DIM cnt = LENGTH(hash)
	FOR n = 0 TO cnt - 1
		tmp[hash[n, HASH_VAL]] = hash[n, HASH_KEY]
	NEXT
	hash = HASH_REMOVEALL
	FOR n = 0 TO cnt - 1
		hash[tmp[n, HASH_KEY]] = tmp[n, HASH_VAL]
	NEXT
FEND

プログラム実行例

連想配列のキーと値を入れ替える

HASHTBL fruits

fruits["apple"] = "りんご"
fruits["grape"] = "ぶどう"
fruits["cherry"] = "さくらんぼ"
fruits["peach"] = "もも"
fruits["banana"] = "バナナ"

hashInvert(fruits)

FOR n = 0 TO LENGTH(fruits) - 1
	PRINT fruits[n, HASH_KEY] + ":" + fruits[n, HASH_VAL]
NEXT

//////////////////////////////////////////////////
// 【引数】
//   hash : キーと値を入れ替える連想配列(参照引数) 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE hashInvert(Var hash[])
	HASHTBL tmp
	DIM cnt = LENGTH(hash)
	FOR n = 0 TO cnt - 1
		tmp[hash[n, HASH_VAL]] = hash[n, HASH_KEY]
	NEXT
	hash = HASH_REMOVEALL
	FOR n = 0 TO cnt - 1
		hash[tmp[n, HASH_KEY]] = tmp[n, HASH_VAL]
	NEXT
FEND
結果
りんご:apple
ぶどう:grape
さくらんぼ:cherry
もも:peach
バナナ:banana