起初:道歉我不那麼流利的英語,我是一個17歲的德國;-)如何在Perl中重新排列數組索引?
我做我徒弟作爲一個Web開發者,只是偶然發現了一個問題:
我需要重新排列數組的索引。該陣列基本上是這樣的:
@array = ('a', 'b', 'c');
但是:它是動態變化的,所以它不總是有3個要素的事,但20多個。現在,我需要做的是得到它:
@array = ('c', 'a', 'b');
所以,我想我只是需要做這樣的事情(在for循環,對於每一個元素循環一旦在陣列和增量$計數器)
my $last = $array[$#array];
for($#array)
{
$array[$counter] = $array[$counter + 1];
unshift(@array, $last);
pop(@array);
$counter++;
}
我認爲它會做到這一點:
對於數組中的每個元素(可以說,我們在元素0):Set element index = element index + 1;然後將最後一個數組添加到開頭,然後移除現在的「真正的」最後一個數組(這只是現在開始的一個副本)。然後加1到計數器並重做數組。但它並沒有真正做我想要的。
嗯,這是我的「新手」嘗試,如此反覆,這就是我只需要:
我需要「移動」的所有元素的數組+1的指標,並切斷了最後一個再到在開始時。也許更復雜的是,數組長度只是可變的。
在另一種形式: 我需要把
('a', 'b', 'c', 'd', ... 'z');
到
('z', 'a', 'b', 'c', ... 'y');
Ive得到了不知道如何繼續下去,我希望得到任何幫助。
感謝:-)
已經感謝您的anwers!我忘了說星期一之前我不能測試它,因爲我現在不工作了,現在我也沒有與我聯繫。但是,謝謝,我確定至少有一個解決方案可以工作!
對不起。我只是寫了那個在我腦海裏的家。原來,我只是用push來填充數組(它完全像我想要的那樣)。 – 2011-02-04 16:28:53