質問掲示板

CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。

新規発言一覧最新記事過去一覧 | 検索HOME

スレッド

└◇9:
Re[3]:配列説明補足なの〜ぉ〜 [moon] 10/12 13:09

 └◇10:Re[4]:配列説明補足なの〜ぉ〜 [とむとむ] 10/12
  └◇11:Re[5]:配列説明補足なの〜ぉ〜 [moon] 10/19
   └◇12:Re[6]:配列説明補足なの〜ぉ〜 [とむとむ] 10/20
    └◇13:Re[7]:配列説明補足なの〜ぉ〜 [moon] 10/21 <


9● Re[3]:配列説明補足なの〜ぉ〜[ moon ] 2001 10/12 13:09
なんとなく分かった。気がする(^^;

> @xxx = sort @xxx;

コレで正順のソートが出来てしまうのね。多分。


> @end_sort_xxx = sort {$b <=> $a} @xxx;

ところで、「@end_sort」という文字列に意味があるのでしょうか・・・?
スレッド一覧


10● Re[4]:配列説明補足なの〜ぉ〜[ とむとむ ] 2001 10/12 18:21
> ところで、「@end_sort」という文字列に意味があるのでしょうか・・・?

ただこれで最後・・・という意味でつけただけで、
特に意味は無いよん♪
スレッド一覧


11● Re[5]:配列説明補足なの〜ぉ〜[ moon ] 2001 10/19 03:39
複数の値が入っている配列でソートするときはどうするんだろう・・・?

例えば、
@file(
'a,1,あいうえお,546',
'c,3,さしすせそ,158',
'b,2,かきくけこ,2055',
'd,4,たちつてと,33',
)
というので、二つ目でソートしたい場合とか。
うーむ。謎だ。
スレッド一覧


12● Re[6]:配列説明補足なの〜ぉ〜[ とむとむ ] 2001 10/20 17:39
> @file(
> 'a,1,あいうえお,546',
> 'c,3,さしすせそ,158',
> 'b,2,かきくけこ,2055',
> 'd,4,たちつてと,33',
> )

じゃなく、

@file = (
'a,1,あいうえお,546',
'c,3,さしすせそ,158',
'b,2,かきくけこ,2055',
'd,4,たちつてと,33',
)

だね♪(にこやかに)

でこの場合のソート方法はかなり厄介。なので多分これでよいだろうと思われるソース書いたので、参考にしてな

# ソートしたい要素だけを抜き出す
foreach $file(@file){
@ELEMENT = split(/,/,$file);
push (@temp,$ELEMENT[1]);
}

# 抜き出した要素でソート
sort {$a <=> $b} @temp;

# ソート順に元配列を並び替え
foreach $temp(@temp){
foreach $file(@file){
@ELEMENT = split(/,/,$file);
if ($temp eq $ELEMENT[1]){
push (@file_2,$file);
}
}
}

とやると多分、うまく行くはず。
ただ同じ配列名に格納すると無限ループになるので、注意が必要だねっ☆
スレッド一覧


13● Re[7]:配列説明補足なの〜ぉ〜[ moon ] 2001 10/21 06:44
うぃうぃ。さんくす。
暇な時にやってみまーす。
スレッド一覧

CGIROOM