Re: [請益] 如何移除Array中一個的任一個row

作者: CindyLinz (Cindy Wang)   2015-01-07 22:06:46
※ 引述《josefy (醉落~最弱)》之銘言:
: 各位版大好, 小弟最近遇到個問題
: 我有個array
: @items=([a,1],[b,2],[c,3],[d,4]);
: 但是我想要移除掉第n個row
: ex, n=1 @items應該會變為:
: @itmes=([a,1],[c,3],[d,4]);
: 我試過用 splice但是對一維的array可以, 二維以上好像不能用
: splice @itmes,1,1;
: 請問該怎麼做 ? 謝謝!
Perl 的 array 實際上都是一維的.
只是我們有時候在這一個一維 array 裡面存放的是一排 array 的 reference
所以可以用起來像是二維 array 的效果.
如果想要把
@items = ([a,1],[b,2],[c,3],[d,4])
變成
@items = ([a,1],[c,3],[d,4])
的話, 用:
splice @items, 1, 1
沒有錯;
如果想變成
@items = ([a],[b],[c],[d])
的話, 就... 實際上是一一進每一個 ref 到的 array 裡面操作, 用:
for (@items) {
splice @$_, 1, 1;
# 較新版本的話 (perl >= 5.14) 也可以用下面這個
# splice $_, 1, 1;
}
這個是你指的.. 二維以上嗎? @_@"
作者: josefy (醉落~最弱)   2015-01-07 22:08:00
沒錯, 但我用splice @items, 1,1; 真的不行 Or2不知道為什麼 囧>
作者: CindyLinz (Cindy Wang)   2015-01-07 22:10:00
我猜要額外看其他部分的程式碼了.. 問題可能不在這行@@
作者: josefy (醉落~最弱)   2015-01-07 22:15:00
ok, 瞭解!

Links booklink

Contact Us: admin [ a t ] ucptt.com