Tại sao vòng lặp này hoạt động với từng điều kiện, nhưng điều kiện đầu tiên không quan trọng?Hai điều kiện trong vòng lặp
for ($j = 0; $j < 5 or $j < $synCount; $j++)
tôi chỉ muốn vòng lặp chạy năm lần
hoặc
nếu synCount nhỏ hơn này.
Tại sao vòng lặp này hoạt động với từng điều kiện, nhưng điều kiện đầu tiên không quan trọng?Hai điều kiện trong vòng lặp
for ($j = 0; $j < 5 or $j < $synCount; $j++)
tôi chỉ muốn vòng lặp chạy năm lần
hoặc
nếu synCount nhỏ hơn này.
Bạn có thể có nghĩa là "$j
unde r 5 và$j
dưới $sysCount
", hoặc:
$j < min(5, $sysCount)
Bạn có thể youse tuyên bố break
rời khỏi vòng lặp for:
for ($j = 0; $j < 5 ; $j++)
{
if($j >= $synCount)
break;
//treatment
}
Hoặc tính toán giới hạn của bạn trước khi vòng lặp:
$ max = $synCount < 5 ? $synCount : 5;
for ($j = 0; $j < $synCount ; $j++)
{
//treatment
}
Một giải pháp khác, nhanh nhất: sử dụng min()
:
for ($j = 0; $j < min(5, $synCount) ; $j++)
{
//treatment
}
Hãy thử nó như thế này:
$loopcount = ($syncount < 5) ? $syncount : 5;
for ($j = 0; $j < $loopcount; ++$j) {
}
Dòng đầu tiên xác định liệu $syncount
là ít hơn 5 hay không và sau đó gán một giá trị đến $loopcount
dựa trên đó. Sau đó vòng lặp chạy số lần yêu cầu.
for ($j = 0; $j < ($syncCount <= 5 ? $syncCount : 5); $j++)
hoặc hơi tối ưu hóa (nhưng tôi đoán với 5 hoặc ít lặp này hoàn toàn không quan trọng)
for ($j = 0, $limit = min($syncCount, 5); $j < $limit; $j++)
anothe giải pháp đẹp
foreach (range(0, min($syncCount, 5)) as $j)
Sidenote
$syncCount <= 5 ? $syncCount : 5 == min($syncCount, 5)
rất đơn giản
$j < min(5, $sysCount)
$productsprice=ProductPrice::model()->findAllByAttributes(array ('product_id'=>$products_data->product_id));
foreach($productsprice AS $productsprice):
for($quantity = 0; $quantity <= 10; $quantity++)
{
echo '<li >'.array(value=>'ProductPrice::model()->getquantity($data->quantity)').'</li>' ;
}
endforeach;
Vui lòng thêm một số chi tiết về câu trả lời của bạn. – emmanuel
Không biết về chức năng này. Thanh lịch hơn so với giải pháp của tôi, đẹp nhất! – hellsgate
Đáng yêu! Cảm ơn rất nhiều. – flux