因为您从
str_split
在从0开始的每次迭代中,只取第一个元素。把它从
while
循环并将旧的b计数保存在循环外,代码将不会从头开始。
但请注意,您将遇到
OutOfBoundsException
,如果书本质量和大于初始字符串的可用块数。
此外,您的字符串缺少9:
12345678
9
<?php
$sql = mysqli_query($conn, "select * from books where book='1644445'");
$split = "12345678910111213141516171819202122232425262728";
$show_plit = str_split($split, 4);
$b = 0;
while($row = mysqli_fetch_assoc($sql))
{
$qty = $row["quantity"];
$oldB = $b;
echo "<br/>{$qty}"; #result 2132
for(; $b< $oldB + $qty; $b++)
{
echo "<br/>{$show_plit[$b]}";
}
}