如何为此做出好的循环?
问题描述:
我有这个数组:如何为此做出好的循环?
$values = Array
(
[0] => foo-1
[1] => foo-2
[2] => foo-3
[3] => foo-4
[4] => foo-5
[5] => foo-6
[6] => foo-7
[7] => foo-8
[8] => foo-9
[9] => foo-10
[10] => foo11
[...]
[30] => foo-31
[31] => foo-32
)
我要爆炸阵列的所有的13个值,并获得这样的:
echo "foo-1, foo-2, foo-3, foo-4, foo-5, foo-6 [...], foo-13";
echo "foo-14, foo-15, foo-16, foo-17 [...], foo-26";
echo "foo-27, foo-28, foo-29, foo-30, foo-31, foo-32";
所以,这是我的代码:
$nVal = count($values);
$nbTab = $nVal/13;
$nbTab = round($nbTab, 0, PHP_ROUND_HALF_UP);
for ($cpt = 0; $cpt <= $nbTab-1; $cpt++) {
$line = "";
if($cpt == 0)
$cptEntete = $cpt*12;
else
$cptEntete = ($cpt*12)+1;
echo "Cpt entete :".$cptEntete;
if($cpt+1 == $nbTab){
$jusque = $nVal;
}
else{
if($cpt == 0)
$jusque = 12;
else
$jusque = 12*($cpt+1);
}
for($cptEntete;$cptEntete <= $jusque;$cptEntete++){
$line.= $cptEntete." ,";
}
echo $line."<br />";
问题是,我没有到达,以获得与我的13个值按行排列好行:(
可以帮我吗?
答
与刚刚尝试:
$values = array(/* your data */);
$parts = array_chunk($values, 13);
foreach ($parts as $part) {
echo implode(', ', $part);
}
答
$myArray = [];
for($i = 1; $i != 33; $i++)
$myArray[] = "foo-$i";
$arrays = array_chunk($myArray, 13);
foreach($arrays as $array)
echo implode(', ', $array)."\n";
+0
谢谢!完美 – bahamut100 2014-09-02 13:17:12
答
echo join(
'<br>', // or whatever
array_map(
function (array $chunk) { return join(', ', $chunk); },
array_chunk($values, 13)
)
);
这chunks您的阵列到每个13块,加入每个块的所有元素与,
,然后加入由<br>
每个块(替换成任何你想要的)。
+0
谢谢,我不知道array_chunk函数 – bahamut100 2014-09-02 13:17:50
['array_chunk'](http://php.net/array_chunk)+ ['join'](http://php.net/join)? – deceze 2014-09-01 09:48:09
对不起,我不明白你的要求。你的意思是你的陈述不起作用吗?或者说它正在工作,但不是你想要的? – 2014-09-01 09:49:08
我的陈述不正确。我获得了一个结果,但好的 – bahamut100 2014-09-01 11:11:33