从foreach循环中删除基于itemID的项目

时间:2015-12-22 14:47:40

标签: php

如果项目ID存在,我试图隐藏/删除循环中的项目。我已根据ID删除了产品的商品ID,但我如何去除实际商品本身。

应该是:

  foreach($resp->searchResult->item as $item) {

      if ($item->itemId == 12345){
        continue;
        }

  }

1 个答案:

答案 0 :(得分:1)

如果我理解,你只是不想要一些物品被输出

在循环中,您应该使用 continue 语句,该语句用于跳过当前循环的其余部分

  

http://php.net/manual/en/control-structures.continue.php

考虑到你有一个带有要从循环中排除的ID的数组,你可以这样做:

Sub ExtractLink()

Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")

With IE

    .Navigate "http://finder.fi/yrityshaku/nokia+oyj"

    Do
        DoEvents
    Loop While .Busy Or .Readystate <> 4

    .Visible = True

    Dim oDoc As Object
    Set oDoc = .document

    With oDoc

        Dim cLinks As Object, iLink As Object, sText As String
        sText = "Tietoliikennepalveluja%2C+tietoliikennelaitteita/Nokia+Oyj/TAMPERE"

        Set cLinks = .links

        For Each iLink In cLinks

            If InStr(1, iLink.Href, sText) Then

                Debug.Print Replace(iLink.Href, "http://finder.fi", "")

            End If

        Next

    End With

End With

End Sub

这样您就不会遍历不需要的物品

如果您不想使用数组并且只有一个ID可以解雇,您可以这样做:

<?php
$idsToExclude = [1234,1333,1444];

foreach($resp->searchResult->item as $item) {
    if (in_array($item->itemId, $idsToExclude) {
        continue;
    }

    // Here you can use $item
    ....
}

或者在您的API调用中,您还可以添加一个参数,表明您不想排除某些结果或仅包含一些特定项目。