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