我有以下php代码:
<?php
$numbers=array (
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
);
$output = array();
foreach($numbers as $i=>$number)
{
$output[]= $number;
if(($i+1) % 3 == 0)
{
var_dump($output);
$output=array();
}
}
输出以下内容:
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
array(3) {
[0]=>
string(1) "4"
[1]=>
string(1) "5"
[2]=>
string(1) "6"
}
array(3) {
[0]=>
string(1) "7"
[1]=>
string(1) "8"
[2]=>
string(1) "9"
}
我一直在敲我的头,还要抛弃其余的东西,就像这样:
array(2) {
[0]=>
string(1) "10"
[1]=>
string(1) "11"
}
我知道有一种方法可以使用模数运算符,我几个月前看到它是一个片段,但现在我找不到它。我认为他们在模数线上使用减法。
如果有帮助,var_dump将被插入mysql的语句替换。
提前致谢。
答案 0 :(得分:1)
另一个选择:预先计算数组,如果你在最后,请检查你的循环。
$last_key = count($numbers) -1;
$output = array();
foreach($numbers as $i=>$number)
{
$output[]= $number;
if(($i+1) % 3 == 0 || $i == $last_key && $output)
{
var_dump($output);
$output=array();
}
}
我喜欢这样做,因为你不必在循环结束后重复循环中的代码。
答案 1 :(得分:0)
你不需要另外的计算,只需要循环后的var_dump并清除你的输出数组,如果你想让它最终为空。
console.log
答案 2 :(得分:-3)
为什么不算数?
$i=0;
foreach($numbers as $key=>$number)
{
$output[]= $number;
if(($i+1) % 3 == 0)
{
var_dump($output);
$output=array();
}
$i++;
}
或直接使用$ number。