3
A
回答
14
splice()功能。
8
您可以使用数组片段是这样的:
#!/bin/perl -l
my @array = (1,2,3,4,5,6,7,8,9);
print join ",", @array[0..2];
print join ",", @array[3..5];
print join ",", @array[6..$#array];
3
要匹配的PHP函数可以使用多种方法:
use strict;
use warnings;
use List::MoreUtils qw(natatime part);
use Data::Dumper;
my @array = 0..9;
my $size = 3;
{ my $i = 0;
my @part = part { int($i++/$size) } @array;
warn "PART\n";
warn Dumper \@part;
}
{ my $iter = natatime($size, @array);
my @natatime;
while(my @chunk = $iter->()) {
push @natatime, \@chunk;
}
warn "NATATIME\n";
warn Dumper \@natatime;
}
{ my @manual;
my $i = 0;
for(0..$#array) {
my $row = int($_/$size);
$manual[$row] = []
unless exists $manual[$row];
push @{$manual[$row]}, $array[$_];
}
warn "MANUAL:\n";
warn Dumper \@manual;
}
2
其中一个更简单的方法是使用List::MoreUtils
,要么natatime
或part
函数。
随着natatime,它创建了一个迭代器,所以这可能不是你想要什么:在列表
my $iter = natatime 3, @orig_list;
而且每次调用$iter->()
回报3项。
然后就是part
。
my $i = 0;
my @groups = part { int($i++/3) } @orig_array;
如果您想使这更容易,您可以编写自己的功能:chunk_array
。
sub chunk_array {
my $size = shift;
my $i = 0;
return part { int($i++/$size) } @_;
}
你会说它是简单:
my @trios = chunk_array(3, @orig_array);
相关问题
- 1. 将数组分解成小数组
- 2. 如何将数组分成小阵列?
- 3. php将数组拆分成更小的偶数组
- 4. 将数组分成较小的部分
- 5. 如何分页Perl数组?
- 6. 将数组分成3组
- 7. 将数组拆分为更小的数组,取决于数值何时更改
- 8. 用相同的元素将数组分成小数组
- 9. 如何将一个大数组切片成较小的数组
- 10. Perl:使用变量作为数组元素将主数组划分为更小的数组
- 11. 如何将数组分组?
- 12. 如何将数组分组?
- 13. 使用linq将数组拆分为更小的数组?
- 14. 在JAVA中将大数组分解为更小的数组
- 15. 计数perl数组大小
- 16. 如何将一个长数组拆分为更小的数组,使用JavaScript
- 17. 将95MB的JSON数组拆分成更小的块?
- 18. 将单个数组分成两个数组的代码如何?
- 19. 如何将数组分成包含相同值的JavaScript数组?
- 20. 将数组分成多个数组C++
- 21. 将数组拆分成数组php
- 22. 将大型数据集分成更小的组
- 23. 如何在Perl中缩小数组?
- 24. 如何将数组分成变量
- 25. 代码如何将单个数组分成多个数组?
- 26. 如何用一个语句将2d数组分成1d数组?
- 27. 如何将数组分解为固定大小的小数组? (在C中)
- 28. Perl的DBI数组 - 拆分
- 29. 如何将数组分成N个最小和子集?
- 30. 如何将数组引用转换为Perl中的数组?
谢谢。它确实有帮助。从PHP转移到Perl不是一件容易的事情:) –
@Antonio:不是一件容易的事,但它确实值得! :) – sebthebert
为什么这不是一件容易的工作? – damog