[英]Comparing and increasing string value with FOR loop
我想新的字符串中的舊字符串從數據庫進行比較,如果該字符串存在一個字符串是否存在汽車新的字符串應該是汽車-1增加了,例如,如果然后該字符串存在汽車2 ...
我正在使用Laravel,並通過使用while()循環實現了這一點,但我也想用for()循環來實現。
這是我的代碼:
foreach($lang_codes as $key => $value)
{
$oldAlias = str_slug($request->{"new_category_lang_{$value->code}"}, '-');
$newAlias = $oldAlias;
$aliasCheck = ShopCategoryName::where('alias', $oldAlias)->first();
$newCategory = new ShopCategoryName;
$i = 1;
while ($aliasCheck)
{
$newAlias = $oldAlias . '-' . $i;
$aliasCheck = ShopCategoryName::where('alias', $newAlias)->first();
$i++;
}
}
我試圖將strcmp()與for()循環一起使用,但我不知道如何將這些代碼放在一起,這很糟糕。
所以基本上,我正在嘗試上面的代碼來處理for()循環,但我的大腦已經阻塞並且過於復雜。
這部分
$i = 1;
while ($aliasCheck)
{
$newAlias = $oldAlias . '-' . $i;
$aliasCheck = ShopCategoryName::where('alias', $newAlias)->first();
$i++;
}
相當於
for ($i = 1; $aliasCheck; $i++)
{
$newAlias = $oldAlias . '-' . $i;
$aliasCheck = ShopCategoryName::where('alias', $newAlias)->first();
}
您還可以將代碼重寫為:
$oldAlias = str_slug($request->{"new_category_lang_{$value->code}"}, '-');
$newAlias = $oldAlias;
$newCategory = new ShopCategoryName; // <-- not sure what that is good for
for ($i = 1; ShopCategoryName::where('alias', $newAlias)->exists(); ++$i)
{
$newAlias = $oldAlias . '-' . $i;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.