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