簡體   English   中英

使用FOR循環比較和增加字符串值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM