【发布时间】:2014-06-02 15:00:27
【问题描述】:
我想将键填充到数组中,但是键会递增,当满足一定数量时,它会停止并再次重复第一次递增。
我会给出代码,这样会更容易理解。
$start = 0004;
$end = 0150;
$trans = array();
for ($c = $start; $c <= $end; $c++) {
$strpad = str_pad($c, 4, "000", STR_PAD_LEFT);
$trans[] = $strpad;
}
$numtable = 1062;
$newarray = array();
foreach($trans as $value) {
$newarray[$numtable] = $value;
$numtable++;
}
var_dump($newarray);
// output
array(147) {
[1062]=>
string(4) "0004"
[1063]=>
string(4) "0005"
[1064]=>
string(4) "0006"
[1065]=>
string(4) "0007"
[1066]=>
string(4) "0008"
and so on....
// end output
现在,我想要的是,当增量数达到 1100 时,它会重置为 1000 并继续递增,当再次达到 1100 时,它将重置为 1000 并再次继续。
所以,我想做的是:
$numtable = 1062;
$newarray = array();
foreach($trans as $value) {
if($numtable==1101){
$numtable = 1000;
}
$newarray[$numtable] = $value;
$numtable++;
}
var_dump($newarray);
// output
array(101) {
[1062]=>
string(4) "0105"
[1063]=>
string(4) "0106"
[1064]=>
string(4) "0107"
[1065]=>
string(4) "0108"
and so on.. continue to...
string(4) "0148"
[1005]=>
string(4) "0149"
[1006]=>
string(4) "0150"
[1007]=>
string(4) "0050"
[1008]=>
string(4) "0051"
And so on...
我的问题是: 我很确定我的第二个代码是正确的。 但是,为什么数组值以 0105 而不是 0004 开头? 而当值达到0150时,它仍然继续循环开始到0050?
我的代码有错误吗?
【问题讨论】:
-
var_Dump 第一个数组,并检查该数组中的内容?
-
正如你在我上面的帖子中看到的,第一个数组有 array(147) { [1062]=> string(4) "0004" [1063]=> string(4) "0005"
-
我看不到*你的数组 $trans...
标签: php foreach numbers increment