作者CindyLinz (Cindy Wang)
看板Perl
标题Re: [请益] 如何移除Array中一个的任一个row
时间Wed Jan 7 22:06:46 2015
※ 引述《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;
}
这个是你指的.. 二维以上吗? @_@"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.121.80.249
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Perl/M.1420639609.A.8E2.html
1F:推 josefy: 没错, 但我用splice @items, 1,1; 真的不行 Or2 01/07 22:08
2F:→ josefy: 不知道为什麽 囧> 01/07 22:08
3F:→ CindyLinz: 我猜要额外看其他部分的程式码了.. 问题可能不在这行@@ 01/07 22:10
4F:推 josefy: ok, 了解! 01/07 22:15