我正在尝试将特定数据存储到中,array以便以后使用。
我试图通过键将数据存储在数组中。但是它不断循环的次数远远超过了需要的次数。我设置了一个条件,当row = "configurable"(应该是第5行或第6行)时,它将卸载数据并重新启动。因此,我可以将数据放入“可配置”行,然后重新开始。
我可能完全错了,但是我看不到另一种解决方法。我也尝试过将"For"循环放置在Foreach中,但是这给我带来了更多的循环问题。
($Ptype是在此循环外部声明的值。它应该每4-6行出现一次)
$rowArr =
[1] => Array
(
[0] => 5.5
[1] => sku123
[2] => default
[3] => simple
[4] => testData4
[5] => testData5
[6] => testData6
)
[2] => Array
(
[0] => 5.9
[1] => sku456
[2] => default
[3] => simple
[4] => testData4
[5] => testData5
[6] => testData6
)
$ rowArr继续大约1000行。我想获取值[1]和[3],并在遇到“ if($ ptype =='configurable')”时放置它们。完成此操作后,我要在$ rowData数组内继续并重复直到再次执行if语句。
因此输出应为(我将对此进行格式化):
[5.5,简单,5.9,简单,...,...]
然后,如果满足if语句,则应将其删除,以便为新的值腾出空间。
for ($i=1; $i < count($rowArr); $i++) {
$Data[] = $rowArr[$i][1];
$Data[] = $rowArr[$i][3];
// without a "break;" here, it gets too many rows.
}
if($ptype == 'configurable'){
$dataim = implode("," , $Data);
echo $dataim . "\n";
$dataim = "";
// If I "die;" here, it fills the first row correctly, but it needs to get every row.
reset($Data);
}
我也尝试过(我已经尝试过很多休息时间等):
for ($i=1; $i < count($rowArr); $i++) {
$Data[] = $rowArr[$i][1];
$Data[] = $rowArr[$i][3];
if($ptype == 'configurable'){
$dataim = implode("," , $Data);
echo $dataim . "\n";
$dataim = "";
reset($Data);
break;
}
}
总之:
存储另一个数组中的值[1]和[3]
一旦[3]值可配置,就转储数据并在阵列中重新开始。无限期继续,直到行完成。
实际结果:
只是一遍又一遍地循环前两个值,如果实现了中断,则不会获取任何其他数据。没有foreach
循环中断,它将永远循环。
随着"die;"
在for循环,它得到正确的数据,但只适用于第一行。
至尊宝的传说